2011/06/12

『鋼球ぐらい握りつぶせ!』・・・■■■

2011/05/31京都新聞web版に『磁力抵抗「ゼロ」の発電機 草津の男性が発明』という記事が掲載された。《相談された京都大学の中村准教授は、「目からウロコの発想だが、どうして今まで誰も気づかなかったのか。多分野への広がりが期待できそうだ」と驚き、草津の男性は「自転車の発電機の抵抗を軽くしようと思いついたのがきっかけ。素人の発想を聞いてもらえてありがたい」と、協力に感謝している。》とある。
『どうして今まで誰も気づかなかったのか?』
研究者や開発者が、その問題(磁力抵抗)に着眼していなかったとは考えにくい。
常識や、習慣、思い込みが生んだ隙間だったかもしれない。
ということで、今回はアイデアの発想について調べてみた。

マインドマップの利用

マインドマップとは:表現したい概念の中心となるキーワードやイメージを図の中央に置き、そこから放射状にキーワードやイメージを繋げていくことで発想を延ばしていく図解表現技法。(wikiより)
マインドマップを作成することにより表現したい概念を理解し、問題とらえ、解決方法を探っていく。
例として概念の中心にATC2010のルールを置いてみた。
z
専用のソフトもあるようだが、今回は、前から使用していた【Frieve Editor】を使用した。そのため本来の形と異なる。

オズボーンのチェックリスト

以下の項目と照らし合わせてアイデアを発想させていく発想法
  • 他に利用したらどうか?
  • アイデアを借りたらどうか?
  • 大きくしたらどうか?
  • 小さくしたらどうか?
  • 変更したらどうか?
  • 代用したらどうか?
  • 入れ換えたらどうか?
  • 反対にしたらどうか?
  • 結合したらどうか?
上記の草津の男性の発想がまさしく、【結合したらどうか?】に該当します。
そのほかにを多数のアイデア発想法が【IdeaTool】にまとめられています。

あなたに相っつたアイデア発想法は?

面白いサイトを見つけたので紹介します。
このサイトで簡単なアンケートに答えると、あなたの中にどんなアイデア発想能力が隠されているか?判定してくれるそうです。
アイデア発想法 判定
ちなみに、私は、『アイデア独裁者でいけ!』だそうです。^^;

まとめ

前日に、排熱を利用して発電できるスターリングエンジンのことを調べていたので、faiさんが上記の記事をつぶやかれて興味を持ち今回の内容となりました。





『え!今回のタイトルですか?』

昨年ナゴヤドームで見た、トヨタの広告のフレーズです。
インパクトありますよね!
『そんな事、無理に決まっている!』
と思うか?
『どうやって鋼球をつぶすか?考える』
かで、受け止め方が違ってくると思いませんか?

だって、言った奴の目の前で鋼球を握りつぶして、ドヤ顔したら気持ちええだろうな!って

決して無理な話じゃないと思います。
スプーンを簡単に曲がったように見せることができる人がいるくらいですから・・^^

2011/06/07

思い込みとは恐ろしいもので・・■■■

ArrayResize関数について、勘違いをしてましたので記録しておきます。

【サンプルコード】

以下の様なサンプルコードを作成しました。
void OnStart()
  {
    double k[];
   int     count;
   double    sum;
   for(int i=1 ;i<10;i++){
      ArrayResize(k,i);
      k[i-1] = i;
      count = ArraySize(k);
      sum=0;
      for(int q=0;q<count;q++)sum += k[q];
      Print("No= ",i," sum = ",sum);
   }   
  }

【勘違いしていた脳内処理】

脳内処理では、以下の様になると思い込んでいました。
No sum 脳内処理過程(E= EMPTY_VALUE)
1 1 k[0]=1
2 2 (k[0]=E)+(k[1]=2)=2
3 3 (k[0]=E)+(k[1]=E)+(k[2]=3)=3
4 4 (k[0]=E)+(k[1]=E)+(k[2]=E)+(K[3]=4)=4
5 5 (k[0]=E)+(k[1]=E)+(k[2]=E)+(K[3]=E)+(K[4]=5)=5
6 6 省略
7 7 省略
8 8 省略
9 9 省略
簡単に言ってしまえば、ArrayResize関数を実行すると、それ以前に格納した数値は、初期化されると思い込んでいました。

【実際の処理】

No sum 実際の処理過程
1 1 k[0]=1
2 3 (k[0]=1)+(k[1]=2)=3
3 6 (k[0]=1)+(k[1]=2)+(k[2]=3)=6
4 10 (k[0]=1)+(k[1]=2)+(k[2]=3)+(K[3]=4)=10
5 15 (k[0]=1)+(k[1]=2)+(k[2]=3)+(K[3]=4)+(K[4]=5)=15
6 21 省略
7 28 省略
8 36 省略
9 45 省略
実施は、上記の様になります。つまり、配列を、初期化せずに配列数を変えていきます。
ArrayResize関数は、動的配列を行うための関数だったってことです。

【まとめ】

alohafxさんのブログに書かれているように、ATC2011に再挑戦しようと思っていますが・・・・こんな状態です。はたして間に合うかどうか・・・、それと、ツイッターをしてみることにしました。ほとんど情報収集用ですが・・