【Arduino】ランダムなのにランダムじゃない?

最近近所にできたLIQUOR OFFでついビールを安く買ってしまいます。
酔っぱらい気味なヨリミチ団です! ヘッ!

突然ですがランダムと千鳥足って似てませんか?プログラミングソフトでDrunk(酔っぱらいの意)というコマンドで乱数を生成するものもあるんですよ?そのソフトはMax/MSPというソフトウェアと言っていr…

いけません、酔っ払っておりますね。

シャキッと乱数について考えてみましょう!ヒック!

前回のArduinoのコピペは成功しましたでしょうか?
あのプログラミングの中にA.wavが再生されたら「1」B.wavが再生されたら「2」を記述してくれるプログラミングも仕込んであります。
それでは早速シリアルモニターを確認してみましょう!
ランダム
確かに乱数ではありませんか!しかもこだわった連続した同じ数字もありませんね!
いやぁ、大成功です
では一回リセットボタンを押して、もう一度最初からGNDをA0ピンをぶすぶす挿してみます
ランダム2
再起動してもまた別の数列となっております!では念には念を入れてもう一度…
ランダム3
あれ…?
シリアルモニターを開けたまま、何回かリセットボタンを押して検証します
ランダム4
むむ?
違うような違わないような…
一度スクリーンショットを取っておいたものを並べてみると..
ランダム5比較
むぅ..
これは 仕組まれた乱数 ということなのか?
そうなのです。これは 擬似乱数 と言います。英語では pseudorandom number と言います。
簡単なランダム関数では本当のランダム性を引き出せません。それこそ不確定な外的要素が加わるなどすればあるいは…

Arduino自体で素晴らしい乱数式をプログラミングで打ち込んでも、どちらかという処理領域をもったいなく使ってしまうような気もしてしまいます。Arduinoはセンサーを繋いでなんぼのものだと思うからです。
今回の ぬいぐるみ+電子工作 というコンセプトでは振ると認識する程度が私の技術力の限界でした。

私ももっと精進してランダムを極めたいと思います!

さて、ここで私が取った手法は極めて原始的です。
それは

起動時に同じ音源が連発してもスキップさせてしまえばいいじゃない

そう思ったのです。

根本的な解決にはなっていませんが、長い乱数を普通の人はきっと覚えられません、多分。
なんだか円周率の3.141592までなら覚えていることと似ている感覚を持ったからです。
毎回電源を入れたら最初に大体この音源が流れて..次は、「あぁやっぱりね」
という心理をスキップしてどうか不器用なクセのあるプレゼントにしてお茶を濁そうとしたわけであります。
私にできる精一杯の外的要素でした。

きっともっとプログラミングできる方々には解決策と引き出しがいっぱいあるかと思います。
今回はおよそ30トラックの乱数(しかも連続して再生されない仕様!)を処理するのにArduinoのエンジンが危険信号を発信しだしたのです
処理の限界
残りのメモリが少ないです。安定性に問題が生じる可能性があります、と申しております。

ここらへんも含めて最も効率の高い美しいプログラミングを書くことの重要性を再認識しました。

反省したところで、ランダムの神秘に抱かれながら千鳥足でベッドに向かうことにします!

それではまた次回!

運命の逆転

新品価格
¥1,800から
(2016/11/5 00:18時点)

この記事が気に入ったら
いいね ! しよう


PAGE TOP