LINEスタンプ制作代行サービス・LINEスタンプの作り方!

お電話でのお問い合わせ:03-6869-8600

stampfactory大百科事典

Rand

randは、引き続く呼び出しが擬似乱数列を返すような関数に付けられる名前である。ランド、ランダムと呼ばれている。以下主に標準Cライブラリのそれについて説明する。(以下、基本的に C99に従う)stdlib.hで宣言されている、0以上かつ定数RAND_MAX以下(数学で使う「以上」「以下」であり両端を含む)の整数値を返す関数である。標準ではマルチスレッドについて触れられておらず、POSIXではスレッドセーフに実装することを要求していない。また、標準は、randが生成すべき乱数列の品質など、乱数列の乱数性については何も言及していない。randの引き続く呼び出しが返す乱数列はsrandで初期化される。srandを呼び出さずにrandを使った場合は、最初に引数を1としてsrandを呼び出した場合と同じように動作しなければならない。一部のBASICでRANDOMIZEという名前であったためランダマイズと呼ばれることもあるが、「種子」を与えているだけで、何かをランダムにしているわけではない。実行ごとに異なる乱数列を生成するために、簡便な手法としては時刻などが使われる。暗号などの応用では外部から予測が不可能(ないし十分に困難)な方法を使わなければならない。逆に、シミュレーションを再現するためなどでは、同じ数を使用して同じ乱数列を返すようにする。srandは乱数列に種子を与え初期化するものであるから、randを使用する度にsrandを呼んだりするのは、誤った用法である。古いrandの実装が生成する乱数列は、問題があるものがほとんどだったことが指摘されている。現代のライブラリでは問題があるものは少なくなっているが、標準の規格書で示された実装例があまり良いものではなかったことや、古いライブラリと同じコードが使われ続けているものもまだあることから、注意を要する。前述の規格書に示された例をはじめ、randの実装に線形合同法が使われていることがあるので、線形合同法の欠点に注意する必要がある。詳細は線形合同法#短所を参照すること。ライブラリには標準外でより高品質のrandom、rand48等が用意されていることがある。また、メルセンヌ・ツイスタ等のより良い生成法を検討すべきである。 #include 出力結果(例。0~9のいずれかの値が返る):srandの際に現在時刻を使用しているが、これは実行ごとに異なる乱数列を生成するための、簡便なよく使われる手法である。暗号などの応用では外部から予測が困難な方法を使わなければならない。特定の範囲で乱数を求めたいときにはcodice_1とする方法も広く知られているが、線形合同法などの下位ビットの乱数としての品質が低い生成法に備えるため上記のコード例のような上位にあるビットを利用するコードが推奨されている。

出典:wikipedia

LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。