About
位置 (-1920,8,-144)
呼び出し元 毎tick実行するコマンド群12
UpdateRandom
が付与されたプレイヤーの、新しい乱数RndMWC
の生成を行う。なお、TUSB内での乱数の解説については乱数解説を参照。
コマンド群
No. | コマンド |
---|---|
1 | /scoreboard players operation @a[tag=UpdateRandom] RndMWC *= #MWCMultiplier Const |
2 | /execute @a[tag=UpdateRandom] ~ ~ ~ /scoreboard players operation @a[c=1] RndMWC += @a[c=1] RndMWCCarry |
3 | /execute @a[tag=UpdateRandom] ~ ~ ~ /scoreboard players operation @a[c=1] RndMWCCarry = @a[c=1] RndMWC |
4 | /scoreboard players operation @a[tag=UpdateRandom] RndMWC %= #MWCBase Const |
5 | /scoreboard players operation @a[tag=UpdateRandom] RndMWCCarry /= #MWCBase Const |
6 | /scoreboard players tag @a[tag=UpdateRandom] remove UpdateRandom |
詳細
UpdateRandom
を持ったすべてのプレイヤーに対し、以下の計算を実行し、UpdateRandom
を削除
\(n\)回目の乱数更新とすると、
\[\begin{align*} & RndMWC_n = (RndMWC_{n-1}\times Multiplier + Carry_{n-1})\mod Base \\ & Carry_n = \lfloor (RndMWC_{n-1}\times Multiplier + Carry_{n-1})\div Base\rfloor \end{align*}\]但し、\(RndMWC\)は対象プレイヤーのRndMWC
、\(Multiplier\)は#MWCMultiplier
のGlobal
\((=31743)\)、\(Carry\)は対象プレイヤーのRndMWCCarry
、\(Base\)は#MWCBase
のGlobal
\((=65536)\)である。