- 5694. 乱数について [tka] 2005/08/01 18:10
- PIC初心者のものですが、また質問させていただきます。
PIC16F84Aを用いて1〜10のうちのどれかの値を取り出す
ような乱数の発生プログラムを作りたいのですが、どのようにしたらよいでしょうか。
プログラムはアセンブラを使用しています。
- 5699. Re: 乱数について [DANGAN4] 2005/08/02 09:50
- Microchip社サイトにあるアプリケーションノートAN544が参考になると思われます。(英語ですが)
サイト内で AN544 で検索して見て下さい。
ダウンロードできるPDFファイルの35ページあたりのリストが参考になると思います。
- 5701. Re: 乱数について [PIC初心者] 2005/08/02 13:01
- >Microchip社サイトにあるアプリケーションノートAN544が参考になると思われます。(英語ですが)
>サイト内で AN544 で検索して見て下さい。
>ダウンロードできるPDFファイルの35ページあたりのリストが参考になると思います。
サイコロを振るような本当にランダムな数字を出すのですか?
剰余を使うアルゴリズムでは周期性が出てしまい”擬似”乱数ですが、応用目的に合うのかな?
- 5703. Re: 乱数について [松本] 2005/08/02 13:54
- >サイコロを振るような本当にランダムな数字を出すのですか?
>剰余を使うアルゴリズムでは周期性が出てしまい”擬似”乱数ですが、応用目的に合うのかな?
アルゴリズムで作れる乱数は全て擬似乱数だと思いますが、モンテカルロ法で解析するような用途ぐらいであれば、簡単な擬似乱数でもそこそこ使えます。
本当に乱数が欲しい用途などでは専用の乱数発生器(熱雑音をつかってどうのこうのとか、よくわかりませんが、)を使うようですが、初心者レベルでそこまでは必要ないでしょう。
そういえば、アルゴリズムではないですが、円周率並びは結構いい乱数になってるようです。
PICでは難しいかもしれませんが、1万桁ぐらい記憶させておいて、上記のアルゴリズムで取り出す桁位置を決めてそこから10個取り出すとかすると再現性の少ない乱数になるのかも。
- 5707. Re: 乱数について [PIC初心者] 2005/08/02 17:21
- >アルゴリズムで作れる乱数は全て擬似乱数だと思いますが、
キー押下の時間を測定した値や、時計の時刻を、パラメータに使って、剰余と組み合わせた計算値にすると、より乱れた乱数になる・・・というような方法もあります。あくまで例の一部に過ぎませんが・・・、
- 5712. Re: 乱数について [tka] 2005/08/02 23:04
- 返信ありがとうございます。そこでいきなりなのですが、
アルゴリズムというのはある変数を掛けたり割ったりして
別の数にするというものでしょうか。
AN544に書いてあるのもこの方法でしょうか。
またモンテカルロ法というのはどのような方法なのでしょうか。
質問ばかりですみません。
とりあえず、ボタンを押すまでの時間とボタンを押している時間を用いてはじめの変数を取り出し、
それをいろいろ計算して別の数値を作るという方式で作ってみました。
- 5720. Re: 乱数について [NKJM] 2005/08/03 09:21
- (使用していないのであれば)単純にTMR0等の値を
読んだのを元にすれば結構不規則な数値になるのでは
ないでしょうか。