モジュール詳細:計算神経衰弱

シャッフルで脳までかき混ぜないように。

このモジュール上には16枚のタイルが4段に並んだボードがある。
各タイルは「白、銅、銀、金」の4色があり、そのうち金は「定数、変数、演算」のいずれか一つのタイプを持つ。

  • 各変数の値を代入しタイルを上段から下段の順で左から右に読む、ある数学の方程式を形成する。
  • 各演算のペアの間にあるタイルの数字は、連結して一つの数字を形成する。
  • 値が99999999を超える場合、先頭八桁のみを取得する。
  • 前の演算の出力を次の演算の入力とし、1つの数字が残るまで、各演算を各数字のペアに読み順で順次適用する。
    • 二個以上の演算タイルが連続して現れている場合、最初と最後の演算で複合演算を形成する。
    • 最初のタイルが演算の場合、タイルシーケンスの最初と最後の数字に対してそれを適用する。
    • 最後のタイルが演算の場合、直前の演算の結果とタイルシーケンスの最初の数字に対してそれを適用する。
  • 最後の演算の結果をキーパッドに入力し、送信する。
    • <キーを押すと、直前に入力した数字を削除する。
    • 最終結果が99999999を超える場合、下八桁のみを取得する。

送信内容が正しい場合、ハッチが開き、ボタンが現れる。このボタンを押すとタイルが裏返しになりシャッフルを5回行う。カードはいずれかの方法でシャッフルされる。

  • 2つの段/列を交換する。
  • 段/列全体を1つシフトする。
  • 中央を中心に時計/反時計に4枚のカードを回転させる。

5回のシャッフルが完了したら、シャッフルされたグリッドに対して上記のステップを再度行う。

  • ボード上のタイルの位置が関係する変数は、その新しい配置に基づき更新される。
  • 時間が関係する変数は、最後のシャッフルが完了した時間に基づき更新される。

この段階で間違った値が提出された場合、ボードはリセットされ、ボタンが押されると新しい一連のシャッフルが始まる。

定数

01234
56789

変数

すべての変数の値は、10以上であれば下一桁を取得し、0~9の範囲内でなければいけない。

このタイル以外の同じ色のタイルの枚数。
同じ色の定数がない場合、値は0になる。
そうでない場合、読み順でこのタイルより後に現れる同じ色の定数のうち最初に現れたもの(必要に応じて最初のタイルにループする)と同じ値になる。
タイルが自身の色に対応するボードの領域に属している場合、その値はシリアルナンバーの最初の数字となり、そうでない場合、その値はシリアルナンバーの最後の数字となる。
  • 白- 上半分
  • 銅- 奇数番目の段
  • 銀- 左半分
  • 金- 奇数番目の列
読み順におけるタイルの位置。色によって読む方向が異なる。
  • 白- 一番上の左から右に読む。一番右まで到達したら一段下に進む。
  • 銅- 一番右の上から下に読む。一番下まで到達したら一列左に進む。
  • 銀- 一番下の左から右に読む。一番右まで到達したら一段上に進む。
  • 金- 一番左の下から上に読む。一番上まで到達したら一列右に進む。
上下左右に隣接する定数の和。ボードの端はループしている。
タイルの色に基づく列にある定数の和。
  • 白- 1列目。
  • 銅- 2列目。
  • 銀- 3列目。
  • 金- 4列目。
タイルの色に基づく時間単位におけるモジュール起動時時点の時間。
  • 白- 爆弾のカウントダウンタイマーの残り分数。
  • 銅- 実際の日時の「分」を示す数。
  • 銀- 実際の日時の「時間」を示す数(24時間表記)。
  • 金- 実際の日時の「日」を示す数。
エッジワークの個数。
  • 白- バッテリーの本数。
  • 銅- ポートの個数。
  • 銀- インジケーターの個数。
  • 金- インジケーターラベルに含まれる子音の個数。
このタイルと同じ段になく同じ列にもなく同じ色でもない定数の和。
シリアルナンバー内の最大の数字未満である定数の和。

演算

入力同士の和を出力する。
入力同士の絶対差を出力する。
2つの入力のうち大きい方の入力を小さい方の入力で割った余りを出力する。
両方の入力を二進数にする。
2つの入力の各ビットにXOR演算を適用する。
十進数に変換した結果を出力する。

複合演算

各入力の平方の和の平方根の2倍を出力する。
2つの入力の絶対差Dを取得する。
小さい方の入力の平方とDの平方の絶対差の平方根を出力する。
入力に含まれる桁数の平方の和を出力する。
両方の入力を二進数にする。
2つの入力の各ビットにOR演算を適用する。
十進数に変換した結果を出力する。
両方の入力を二進数にする。
各二進数に含まれる1の個数の積を出力する。
両方の入力を平衡三進数にする。
2つの入力の各ビットにXOR演算を適用する。
十進数に変換し、その絶対値を出力する。
2つの入力の調和平均を出力する。
2つの入力のうち大きい方の入力を小さい方の入力で割った余りRを取得する。
小さい方の入力をRで割った余りを出力する。
両方の入力を二進数にする。
2つの入力の各ビットにAND演算を適用する。
十進数に変換した結果を出力する。
両方の入力を二進数にする。
2つの入力の各ビットにXOR演算を適用する。
セル・オートマトンのルール30を適用する。両端はループし、1と0がそれぞれセルのオンとオフを示しているとする。
十進数に変換した結果を出力する。

補足:- 整数以外の出力は小数点以下を切り捨てる。
- 割る数に0が適用される場合、結果は0とする。