Rnd

「Rnd」の編集履歴(バックアップ)一覧に戻る

Rnd - (2013/09/23 (月) 11:24:14) のソース

*標準ライブラリ - Rnd
**説明
>Kuinでは、実はLib@RndやLib@RndFで乱数を生成することが出来るのですが、このライブラリを使用すれば、乱数のインスタンスを用意したり、乱数のseedの値を指定した乱数の生成などが行えます。&br()これはゲームのリプレイデータを生成する時など、常に固定の乱数列が得たい場合などに有効です。&br()因みにKuinで生成することが出来る乱数は、全てMT系乱数となっています。線形合同法とは格が違うのだ(ドヤァ)
----
#contents(fromhere=true)
----


*&aname(Rnd所有メソッド)所有メソッド
**Make() : Rnd@CRnd
***&aname(Make説明)説明
>seedを指定せずに、Rnd@CRndクラスのインスタンスを生成します。&br()正直、Rnd@Get()や、Rnd@GetF()があるので、使用頻度は低め。&br()しかし、同一実行時かつ、初回の乱数クラス生成時であればRnd@GetやRnd@GetFと同じ乱数テーブルになるため、ごく限られた条件でのみ強力になるかもしれない。
**&aname(Make引数)引数
-なし
--ないよっ
***&aname(Make戻り値)戻り値
-Rnd@CRnd
--Rnd@CRnd型のクラスインスタンスが返ります。
--このインスタンスを利用して、様々な乱数を得ます。
--このメソッドで得た乱数のseedの値は実行ごとにオートで変わります。
***&aname(LoadTexサンプルコード)サンプルコード(Ver1.00)
#highlight(linenumber){{func Main()
	var rndIns0 : Rnd@CRnd :: Rnd@Make() {Makeをすると、CRndを返すので、それを代入する}
	var rndIns1 : Rnd@CRnd :: Rnd@MakeSeed(0) {後述のMakeSeedに、Seed値として0を入れたものもオマケで表示}
	
	do Dbg@Log(Rnd@GetF().ToStr()) {この値と}
	do Dbg@Log(rndIns0.GetF().ToStr()) {この値は全く同じ。}
	
	do Dbg@Log(Rnd@GetF().ToStr()) {この値と}
	do Dbg@Log(rndIns0.GetF().ToStr()) {この値も全く同じ}
	
	do Dbg@Log(rndIns1.GetF().ToStr()) {この値は、上記の2つとは全く別の値をとる(テーブルが異なる)}
	
	do rndIns0 :: Rnd@Make() {ここで新たに初期化し直すと}
	do Dbg@Log(rndIns0.GetF().ToStr()) {これまた全く別のテーブルになるので注意}
	do Dbg@Log(rndIns0.GetF().ToStr()) {2番目ももちろん異なる}
end func}}