Rnd

「Rnd」の編集履歴(バックアップ)一覧はこちら

Rnd - (2013/09/23 (月) 11:42:35) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

*標準ライブラリ - 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}}
*標準ライブラリ - 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()なお、乱数テーブルの決定には、exe実行後のmsが重要で、Rnd@Get()やRnd@GetF()に使用される乱数テーブルは、exe実行時に決定され、Rnd@Make()で手に入るCRndに使用される乱数テーブルは、Rnd@Make()に機械語レベルで到達した時に生成される。&br()故に、プログラムの先頭行でRnd@Make()を記述すると、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("同じになりやすい乱数生成1") do Dbg@Log(Rnd@GetF().ToStr()) {この値と} do Dbg@Log(rndIns0.GetF().ToStr()) {この値は同じ値になりやすい。} do Dbg@Log("同じになりやすい乱数生成2") do Dbg@Log(Rnd@GetF().ToStr()) {この値と} do Dbg@Log(rndIns0.GetF().ToStr()) {この値も同じ値になりやすい} do Dbg@Log("seedを0で初期化した乱数") do Dbg@Log(rndIns1.GetF().ToStr()) {この値は、上記の2つとは全く別の値をとる(テーブルが異なる)} do Kuin@Act() {msの時間を調整する} do Dbg@Log("時間調整後の乱数") do rndIns0 :: Rnd@Make() {ここで新たに初期化し直すと} do Dbg@Log(rndIns0.GetF().ToStr()) {これまた全く別のテーブルになるので注意} do Dbg@Log(rndIns0.GetF().ToStr()) {2番目ももちろん異なる} end func}}

表示オプション

横に並べて表示:
変化行の前後のみ表示: