2007-01-06 23:55:36
PCは仕事やら生活を色々と手伝ってくれている面も多く、大変便利だったりするわけですが、PCは計算は出来ても、人間のように考えることは出来なかったりします。
ゲームなどの思考ルーチンはプログラムであり、一見PCが考えているように見えますが、実は一生懸命計算しているだけだったりするワケなのです。
5×5のマスがあるとして、1~25マデの数を適当に埋めていくとした場合、人間なら適当に目に付いたマスから1~25を書いていけますが、PCではそういう融通の利いたことはすんなり出来なかったりします。
私の無い知恵で絞った方法で人間的(?)にやるには
マスに1~25マデの番号を振り、乱数(比較的精度の高いモノ。偏ってない乱数を出せるモノ)で1~25マデをだして、出た順に埋めていき、埋まっている数字が出たリトライするというもの。
具体的に云うならば、1回目:乱数発生3→3マス目に1、2回目:乱数発生8→8マス目に2を、 という感じ。
これは乱数で同じ数字が何度も出るほどに処理が終わらず、運が悪ければ処理が終わらないこともあり得るわけです。
で、PC的にやらせる方法は、(コレも私が考えただけなので一般的ではないかもしれませんが)
1~25マデを順番に埋めます。それからシャッフルします。
「なに?」とお思いかと思いますが、PC的に5×5マスは2次元配列というのになります。
2次元配列ってのは座標みたいなモノで、1個目のマスを(1,1) 、25個目のマスを(5,5)、みたいなかんじに表現したモノですな。
で、入れたあとに配列をシャッフルしてしまう。そうすると、中身はぐちゃぐちゃになりますので、表示される5×5マスにも数字が不規則に並んで表示されるというわけですな。
因みに1次元配列でも出来ます。
1~25マデ扱える配列を作り、そこに1~25を入れて、シャッフルして、5個で改行して並べていけば5×5マスに見えます。
判りやすく云うならば、25枚のタイルを用意して横一列に綺麗に並べて順番に1~25まで数字をふって、ぐちゃぐちゃに混ぜて1行に5個ずつ並べていくという方法です。
コレの方が楽。
なんでこんな話になるかというと、新聞に7×7のマスに0~48マデの数字がランダムに書いてあって、酒を飲むと0~48マデ数字を追う速度が遅くなるから試してみれば?みたいな記事があったからです。
ソフトウェア的にそれを作るにはどーしたらいいのかな…と、ふと思って、ここに書いた次第(^^;
gmailとかの優秀なスパムメールの判別処理には ナイーブベイズ法 (確率論かな…)とかいうのが使われてますよねぇ。
人間だと「あ、コレゴミだ」って見れば判りますけど、PCにはそんなこと判りませんからね(^^;
それを計算とかでやっちゃうんだから、数学ってのは嫌いだけども素晴らしいと思うわけです。
その理論を考えた人も凄い!
ゲームなどの思考ルーチンはプログラムであり、一見PCが考えているように見えますが、実は一生懸命計算しているだけだったりするワケなのです。
5×5のマスがあるとして、1~25マデの数を適当に埋めていくとした場合、人間なら適当に目に付いたマスから1~25を書いていけますが、PCではそういう融通の利いたことはすんなり出来なかったりします。
私の無い知恵で絞った方法で人間的(?)にやるには
マスに1~25マデの番号を振り、乱数(比較的精度の高いモノ。偏ってない乱数を出せるモノ)で1~25マデをだして、出た順に埋めていき、埋まっている数字が出たリトライするというもの。
具体的に云うならば、1回目:乱数発生3→3マス目に1、2回目:乱数発生8→8マス目に2を、 という感じ。
これは乱数で同じ数字が何度も出るほどに処理が終わらず、運が悪ければ処理が終わらないこともあり得るわけです。
で、PC的にやらせる方法は、(コレも私が考えただけなので一般的ではないかもしれませんが)
1~25マデを順番に埋めます。それからシャッフルします。
「なに?」とお思いかと思いますが、PC的に5×5マスは2次元配列というのになります。
2次元配列ってのは座標みたいなモノで、1個目のマスを(1,1) 、25個目のマスを(5,5)、みたいなかんじに表現したモノですな。
で、入れたあとに配列をシャッフルしてしまう。そうすると、中身はぐちゃぐちゃになりますので、表示される5×5マスにも数字が不規則に並んで表示されるというわけですな。
因みに1次元配列でも出来ます。
1~25マデ扱える配列を作り、そこに1~25を入れて、シャッフルして、5個で改行して並べていけば5×5マスに見えます。
判りやすく云うならば、25枚のタイルを用意して横一列に綺麗に並べて順番に1~25まで数字をふって、ぐちゃぐちゃに混ぜて1行に5個ずつ並べていくという方法です。
コレの方が楽。
なんでこんな話になるかというと、新聞に7×7のマスに0~48マデの数字がランダムに書いてあって、酒を飲むと0~48マデ数字を追う速度が遅くなるから試してみれば?みたいな記事があったからです。
ソフトウェア的にそれを作るにはどーしたらいいのかな…と、ふと思って、ここに書いた次第(^^;
gmailとかの優秀なスパムメールの判別処理には ナイーブベイズ法 (確率論かな…)とかいうのが使われてますよねぇ。
人間だと「あ、コレゴミだ」って見れば判りますけど、PCにはそんなこと判りませんからね(^^;
それを計算とかでやっちゃうんだから、数学ってのは嫌いだけども素晴らしいと思うわけです。
その理論を考えた人も凄い!