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)\)である。