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\)は#MWCMultiplierGlobal\((=31743)\)、\(Carry\)は対象プレイヤーのRndMWCCarry、\(Base\)は#MWCBaseGlobal\((=65536)\)である。

Tags: コマンド