重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Arduino LEONARDOというボードを使って乱数生成し、ボタンで制御するというプログラムを作るのですが、①乱数を3つ作り、②ボタンで対応する乱数表示を止める、という流れにしたいと考えています。
普通に乱数を生成するのは未接続ピンのノイズを利用すればいいことは知っていますが、そもそも乱数は複数作れるのですか?
できればその方法を教えてください。

A 回答 (2件)

出てくる乱数が独立していれば、3個ずつ取り出しても、それらに関係性が見られない「乱数」になります。



1つのサイコロを3回振って、出目1、出目2、出目3 とするのと、
3つのサイコロを振って、 サイコロ1は出目1、サイコロ2は出目2.. とするのとで、
同等の乱数列になる、というのは、直感的にもわかりますよね?


ノイズを乱数に使う方法はありますが、これには「確率を制御できない」という欠点があります。
周辺の回路とか、近くにある電波や磁場によって、「1ばかりになりやすい状態」「0ばかりになりやすい状態」「明らかに周期性が見られる状態」等になることも考えられます。

コンピュータで一般に使われているのは疑似乱数です。
これは、前の状態を元に、次の状態を計算して求め、その「次の状態」の一部(または全部)を乱数として使う、というものです。
その計算方法によっては、はっきりとした傾向(奇数と偶数を交互に繰り返す、とか)が見られたり、
必要とされる計算速度やメモリ等がマイコンでは実用的ではなかったりがあります。

今回のようなものだと、ボタンを押したタイミング、というのも十分に使えます。
ボタン待ちの間、単純に0→1→2→...9→0 と数えていって、ボタンが押されたときの値を使う、というものでも、
μ秒単位に正確にボタンを押せる人間などまずいませんから、値はランダムになると考えられます。
    • good
    • 0

未接続ピンのノイズが本当に乱数生成に利用できるならという前提ですが、


そこから3回乱数を取得すればいいんじゃないですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!