2007年06月11日
発覚!
昨日書いてたプログラミングで。
何で先生と違う表示になるか分りました!
※注意!
興味の無い人とにとって、つまらないと思われます。
それは・・・
maxという変数を
getrandという関数で使うんですけど
そこで、maxに9って入れてた(笑)
えっと、この(全体的な)プログラム
最高、配列[1万]まで値を入れるんですけど
すべて、代入される値は乱数で格納するんです。
それで
maxが9だと
0~9までの値を、乱数で生成して格納してるというわけなんです
しかし、1万という膨大な数だと
絶対にそれだと、同じ値をというもが発生してきます。
それで、処理回数に違いが出てました~!
これを、maxに10000という値にしたら
同じになる確率が減って、正しくなったというわけです。
この間違いに
どうして気づけたかというと
配列の中身を、表示してみたんです(笑)
(emacsが、配列の値だらけになりましたw)
こんな感じ↓
00000000(略)111111(略)22222
222(略)333333333(略)4444444
4(略)555555(略)666666666(略)
777777(略)888888888(略)9999
99999(略)
と、表示されてたんです。それで、
おや????
と思って。
正しくしてからは、0~9999までの値が
大量に表示されてました!
正しい~~♪
何で先生と違う表示になるか分りました!
※注意!
興味の無い人とにとって、つまらないと思われます。
それは・・・
maxという変数を
getrandという関数で使うんですけど
そこで、maxに9って入れてた(笑)
えっと、この(全体的な)プログラム
最高、配列[1万]まで値を入れるんですけど
すべて、代入される値は乱数で格納するんです。
それで
maxが9だと
0~9までの値を、乱数で生成して格納してるというわけなんです
しかし、1万という膨大な数だと
絶対にそれだと、同じ値をというもが発生してきます。
それで、処理回数に違いが出てました~!
これを、maxに10000という値にしたら
同じになる確率が減って、正しくなったというわけです。
この間違いに
どうして気づけたかというと
配列の中身を、表示してみたんです(笑)
(emacsが、配列の値だらけになりましたw)
こんな感じ↓
00000000(略)111111(略)22222
222(略)333333333(略)4444444
4(略)555555(略)666666666(略)
777777(略)888888888(略)9999
99999(略)
と、表示されてたんです。それで、
おや????
と思って。
正しくしてからは、0~9999までの値が
大量に表示されてました!
正しい~~♪
コメント
この記事へのコメントはありません。



