October 2018
Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ

« またひとり | Main | 夏のプチパンダ »

てきとーって、難しいのよ

乱数という言葉を、現在ではいろんなところで耳にする。

私が最初に知ったのは、パソコンのBASICで、である。
rndという命令があり、その命令が呼び出されたとき、0から1までの「てきとーな」数字が出力される。で、必要に応じて数値をかけて、ゲームだったら敵の動きなどに応用したのだけれど。
たとえば、うろ覚えだけれど、こんなプログラムを書いたとする。

10 x=rnd(1)*640
20 y=rnd(1)*400
30 point (x,y)
40 goto 10

あ、ちくしょー。もう、「ドットを打つ」コマンド忘れているよ。30行目はそれだと思っておくれ。
何がやりたいかというと、画面上の「てきとー」な位置に、点を打つことを繰り返しているだけだ。

完全な乱数をパソコンが作り出していたとしたら、画面はやがて深夜のテレビの画面のように、埋まるはずだ。
でもね、実際はそうじゃなかったんだよね。
MZ系のBASICで試したときは、斜めに線を描くように星が分布してしまったのだ。

これは、パソコンが乱数を計算で求めていることに原因があるわけで、サイコロを転がすようにはうまくいかない。
(ただ、なぜか、Hu-BASICで試したときは、見事に分布した。かなり考え抜かれたアルゴリズムだったのだろうなあ。)

で、そんなことを思い出しながら、つらつらと検索していたら、
メルセンヌ・ツイスタを発見したのでございます。

なんだか、名前もめちゃくちゃかっこよくて、わくわくする。かなり高速で使える乱数を生成するそうで。
いや、実際のところ、乱数が必要な事態は当面ない。だから、これを利用する機会には恵まれないけれど、こういう記事を読むのは、楽しい。
でね、そうやって乱数の作り方に関する記事をあれこれ読んでるとしみじみと表題のとおり、
「てきとーってのは、難しいんだなあ。」
と思うのでした。

« またひとり | Main | 夏のプチパンダ »

「パソコン・インターネット」カテゴリの記事

Comments

本業はOA系システムがほとんどで,乱数を必要とする機会は今のところ全くと言って良いほどなかったわけですが,一応これでも理学部数学科中退(爆)なので,「乱数発生器」と言うものについてはお勉強させられました.
今はもう,ほとんど忘れてしまったわけですが,榛名氏の言うように「てきとー」を「作る」と言うのは,とっても難しいわけですね(^^;
それこそ「てきとーに作る」と,結果が「てきとーにならない」わけで….

ちなみに蛇足ながら,

>あ、ちくしょー。もう、「ドットを打つ」コマンド忘れているよ。

に,ついてですけど,S-BASIC(SP-5030)系だと SET,Hu-BASIC系だと PSET ではなかったかと.

我が家にはFM-7がありましたが、こちらも、最初にrandomizeを入れておかないと、ほぼ対角線に点が並びました。
runで初期化されるので、何度実行しても同じでした。

Hu-BASICは、マイクロソフト系のBASICに近かったですね。pset、presetなどなど、なつかしいです。

そうそう! setだ、set!
pointは、座標の位置にドットがあるかどうかを判定するコマンドでした。
MZ系には、randmizeコマンドは無かったんですよね。N社のパソコンで試したときは、斜めに点が集まるどころの騒ぎじゃなかった気が……。

 斜めに点が集まるのは、rndが周期関数から擬似発生してたからですよね。当時のN社のPCは、sinテーブルにバグがあったような気がします。MTが慶応から発表された当時はかなり湧きましたね。朝日新聞にきれいなガウス分布をした点の写真が載った記憶があるです。それまでは、きれいな乱数というとKnuth法が一番だったのでしょうか。

 関係無いですが、あそうさんに初めて会った時にKnuthネタで盛り上がったような・・・w。

---
 う、確認だけして送信するの忘れてた・・・(実は初投稿w)

文芸的Programmingは、FrameWork発想に押し流されてしまいましたなぁ…(w

うほっ。難しい話だ(笑)
にょろりん、そういえばお初ね。やほー。
Nのsinテーブルにバグというのは、初耳ですが、さもありなん、かな。
今ね、うちにあるんですけどね、PC-8001mkII

Post a comment

Comments are moderated, and will not appear on this weblog until the author has approved them.

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26372/872184

Listed below are links to weblogs that reference てきとーって、難しいのよ:

« またひとり | Main | 夏のプチパンダ »