SideMenu
hackaholic
編集
WikiMenu
開始行:
ゲーム中で何がどのくらいの確率で起きるのかをある程度把握...
rnd.cはNetHackの乱数生成周りの処理が実装されているファイ...
なお、標準rand()関数の返り値の剰余を取ったものを基本的な...
そこらへんが気になる人は[[乱数生成にMT法を用いるパッチ>ht...
以下に、rnd.cの関数について記述する。~
なお、括弧内のxは基本的に0以下であってはならない。(例外は...
またこれらの関数は全て整数値を返す。
** rn2(x) [#a63f0c2e]
離散型一様分布。範囲は 0 <= rn2(x) < x。
-つまり0からx-1までの整数値を返す。
if(!rn2(x)){ ... } の形で多用される。(この場合、中括弧内...
** rnd(x) [#o7e9ae3a]
離散型一様分布。範囲は 1 <= rnd(x) <= x。
-つまり1からxまでの整数値を返す。要するに rnd(x) = rn2(x)...
** d(n, x) [#j8a4412f]
[[ダイス表記]]で言うところのnDxを返す。範囲は n <= d(n, x...
-ちなみにこの関数では、nが0である時に限りxも0 (つまりd(0,...
** rnl(x) [#v5145037]
基本的にはrn2(x)に似ており、範囲も同様の 0 <= rnl(x) < x。~
だが、[[幸運値>運]]によって分布が偏るようになっている。~
幸運なら数値が小さく、不運なら数値が大きくなりやすくなる...
代表的な(固定しやすい)幸運値に対してrnl(x) → 0となる確率...
|>||>|>|>|>|CENTER:x|
|>|~|2|3|4|5〜15|16〜|
|幸&br;運&br;値|0((幸運値が0の場合はrn2(x)と同値である))|...
|~|10|79/80|59/60|>|157/(40*x)|430/(40*x)|
|~|13|73/74|109/111|145/148|181/(37*x)|505/(37*x)|
//計算を間違えてるかもしれないので検算していただけると助...
** rne(x) [#t4f28f5d]
主に、[[祝福された]]/[[呪われた]]自然生成物の強化値算出等...
1〜「5と現レベル/3のうち大きい方」の範囲の値をとる。
内部でrn2(x) → 0となるたびに+1される。~
例えば、初期装備の指輪の強化値が+5 (rne(3) → 5) となる確...
Lv30ではそこらに+10のアイテムが生成される確率がないでもな...
** rnz(x) [#hd3c4c23]
[[祈り>祈る]]の際などの残り時間算出に使われる関数である。~
分布が複雑なため詳細を知りたければ[[Wikihackの記事>WikiHa...
** rn1(x, y) [#r8efa710]
これはrnd.cではなく、include/hack.h にて定められている。~
rn2(x)にyを加えた値を返す。なおyは0以下であっても構わない。
* 関連リンク [#bcd4d721]
- Wikihackの記事~
[[WikiHack:Rnd.c]]~
[[WikiHack:rne]]~
[[WikiHack:rnz]]~
終了行:
ゲーム中で何がどのくらいの確率で起きるのかをある程度把握...
rnd.cはNetHackの乱数生成周りの処理が実装されているファイ...
なお、標準rand()関数の返り値の剰余を取ったものを基本的な...
そこらへんが気になる人は[[乱数生成にMT法を用いるパッチ>ht...
以下に、rnd.cの関数について記述する。~
なお、括弧内のxは基本的に0以下であってはならない。(例外は...
またこれらの関数は全て整数値を返す。
** rn2(x) [#a63f0c2e]
離散型一様分布。範囲は 0 <= rn2(x) < x。
-つまり0からx-1までの整数値を返す。
if(!rn2(x)){ ... } の形で多用される。(この場合、中括弧内...
** rnd(x) [#o7e9ae3a]
離散型一様分布。範囲は 1 <= rnd(x) <= x。
-つまり1からxまでの整数値を返す。要するに rnd(x) = rn2(x)...
** d(n, x) [#j8a4412f]
[[ダイス表記]]で言うところのnDxを返す。範囲は n <= d(n, x...
-ちなみにこの関数では、nが0である時に限りxも0 (つまりd(0,...
** rnl(x) [#v5145037]
基本的にはrn2(x)に似ており、範囲も同様の 0 <= rnl(x) < x。~
だが、[[幸運値>運]]によって分布が偏るようになっている。~
幸運なら数値が小さく、不運なら数値が大きくなりやすくなる...
代表的な(固定しやすい)幸運値に対してrnl(x) → 0となる確率...
|>||>|>|>|>|CENTER:x|
|>|~|2|3|4|5〜15|16〜|
|幸&br;運&br;値|0((幸運値が0の場合はrn2(x)と同値である))|...
|~|10|79/80|59/60|>|157/(40*x)|430/(40*x)|
|~|13|73/74|109/111|145/148|181/(37*x)|505/(37*x)|
//計算を間違えてるかもしれないので検算していただけると助...
** rne(x) [#t4f28f5d]
主に、[[祝福された]]/[[呪われた]]自然生成物の強化値算出等...
1〜「5と現レベル/3のうち大きい方」の範囲の値をとる。
内部でrn2(x) → 0となるたびに+1される。~
例えば、初期装備の指輪の強化値が+5 (rne(3) → 5) となる確...
Lv30ではそこらに+10のアイテムが生成される確率がないでもな...
** rnz(x) [#hd3c4c23]
[[祈り>祈る]]の際などの残り時間算出に使われる関数である。~
分布が複雑なため詳細を知りたければ[[Wikihackの記事>WikiHa...
** rn1(x, y) [#r8efa710]
これはrnd.cではなく、include/hack.h にて定められている。~
rn2(x)にyを加えた値を返す。なおyは0以下であっても構わない。
* 関連リンク [#bcd4d721]
- Wikihackの記事~
[[WikiHack:Rnd.c]]~
[[WikiHack:rne]]~
[[WikiHack:rnz]]~
ページ名: