• 締切済み

最長周期系列(M系列?)の生成プログラム(C言語)

擬似乱数などに使用される最長周期系列をシフトレジスタ数nを入力として生成するプログラムを探しているのですが、どれだけ探しても乱数生成のプログラムはあっても最長周期系列のほうのプログラムが見当たらないのです。 C言語で探しています。 ソースコードも含めてどうかよろしくお願いします。

みんなの回答

  • yf491224
  • ベストアンサー率0% (0/1)
回答No.2

はじめまして、yf491224というものです 以前私が購入した本「NUMERICAL RECIPES(ニューメリカルレシピ) in C[日本語版](技術評論社)」という本のP.224に掲載されている「ランダムなビットの生成」という項目にM系列のソースコード、原始多項式やタップシーケンスについて記載されていました。 参考にされてみてはいかがですか?

参考URL:
http://www.nrbook.com/a/bookcpdf.php
  • TT414
  • ベストアンサー率18% (72/384)
回答No.1

>乱数生成のプログラムはあっても最長周期系列のほうのプログラムが見当たらないのです。 下の物は違うのですか。 http://ja.wikipedia.org/wiki/%E7%B7%9A%E5%BD%A2%E5%B8%B0%E9%82%84%E3%82%B7%E3%83%95%E3%83%88%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF

関連するQ&A

  • M系列の乱数の検定

    多ビットのシフトレジスタをいくつか使って,M系列乱数を発生させるプログラム(verilog)を作りました。その結果、乱数の出力値が8~10桁です。そしてこの乱数の検定をするためにまずは度数検定をしたいのです。もしこの8~10桁の数字を1桁ずつばらばらにできれば、エクセルを使って、0~9の数字が等頻度で出ているか調べることができるのですが、そんなことはできないのでしょうか?? 乱数についてはこの2ヶ月で色々調べて、何も知らない状態から、やっと乱数発生までこぎつけました。これがまだ使い物になるとは思いませんが、とりあえずは検定をしたいので、ご指導よろしくお願いします。

  • QRコード生成プログラム

    題名の通り、QRコード生成プログラム(C言語)を探しています。 できれば、文字列を入力するとQRコードの配列(黒は1、白は0のように表現)を生成するところまでのが欲しいです。 個人で作るのはなかなか難しいのでWebで見つけようとしましたが、Windowsで動くものしか手に入れられませんでした。 linuxで動くソースを持っている方、もしくはlinuxで動くソースが掲載されているページのURLをご存知の方は、どうか教えて頂きますよう宜しくお願い致します。

  • M系列の生成多項式と原始多項式について

    生成多項式や原始多項式に関する様々な投稿を見ましたが、 いまいち知りたいことがわからなかったので質問いたします。 周期 2^n - 1 のM系列を生成するには、{0,1}を体とする n次の原始多項式を生成多項式として用いるということまでは わかったのですが、このn次の原始多項式の求め方について、 いまいち理解できません。 例えば、周期 2^4 - 1 = 15のM系列を生成するには原始多項式           x^4 + x^1 + 1 ー (1) を用いるということですが、             x^4 + x^2 + 1 ー (2) ではM系列を生成できませんでした。 この2式の違いを理解していないことが原始多項式の求め方を 理解できない原因だと思うのですが、どなたかお詳しい方がいましたら、 ご教授お願いいたします。

  • プログラミングC言語 サイコロ問題

    プログラミングC言語の問題でC言語のrand関数を利用して33回のサイコロ型乱数を出力するプログラムを書きなさい。という問題が出ました。ソースコードを教えてください。

  • c言語配列拡張

    c言語配列拡張 20個の要素からなる実数配列 x[ ] から、小さい添え字からn個の要素までの 最大値を取り出すプログラムを作成する。計算する要素の数nはキーボード から入力するか乱数で決定するかは乱数により得る。 a. 乱数が奇数の場合はキーボードから入力する。 b.乱数が偶数の場合この乱数の数を用いる。 誰が知ったら教えてください!

  • C言語のプログラムを教えて欲しいです。

    大学でC言語のプログラムを組んでくる課題が出たのですが、 どう組めばいいのかさっぱりわかりません。 構想としては、 『乱数で適当にいくつかの数を選び、キーボードから適当に打ち込んだ数字で、 乱数で出してきた数と一致すれば勝てる』というような、 宝くじ的なプログラムを組みたいと思っています。 選ぶ乱数の範囲は10000~30000で、選ぶ個数は10個ほど。 キーボードからは数字の範囲は同じで打てる数は5個ほどで考えています。 どのように組めばよいか教えてください。 できれば、このプログラムを遊ぶためのルールや、打ち込んだ数字が当たっているかなどを DOS窓上に表示する方法も教えていただけると嬉しいです。 よろしくお願いします。

  • 超幾何分布に従う疑似乱数の生成について

    今、超幾何分布に従う疑似乱数を生成するコードをScilabで書こうとしています。しかし、Scilabには超幾何分布に従う疑似乱数の関数が実装されていません。有識者の方で、わかる方がいましたら教えてください。 ソースコードに関してはC言語、Basic、Scilabのどれかで教えていただけたら、助かります。また書籍をご存じなら、書籍名を教えてください。 よろしくお願いいたします。

  • PICマイコンでPN9符号生成(C言語)

    PICマイコンでC言語を用いてPN9擬似ランダム符号発生器を作成したいのですが、WEBで検索してみてもディスクリートでの作成方法や、理論的な解説、アセンブラのソースしか見つからず、作業が滞っている状態です。 参考ですがPICはPIC24FJ64GA002,004,PIC24FJ32GA002などで、コンパイラはMICROCHIP C30 を使っています。 上記のマイコン用のソースではなくても構いませんので、PN9符号擬似ランダム符号を生成する C言語のソースを教えて頂けないでしょうか。  また参考となるソースが載っているHP、書籍などの情報でも助かりますのでよろしくお願い致します。

  • PHPにてC言語プログラムを呼び出す方法

    PHP言語内でC言語プログラムを呼び出す方法があると伺ったのですが、どうすればいいのかご存知でしょうか? いくつか試して見たのですが、ソースコードをテキストとして表示するものばかりでして・・・

    • ベストアンサー
    • PHP
  • c言語 random

    c言語でrandom関数を使って乱数を生成してください