モジュール詳細:欠陥関数

一体、こいつからどうやって何かを入手するんだ??!?

注意:このモジュールは誤作動の傾向がある。初期化時、+1または-1のいずれかがランダムに選択され、その数がXに代入される。その後、「最後のクエリの結果(結果は0未満にならない)にXを加える」「各クエリ実行後、関数リストをX移動(0から35、その逆はループする。最終的な関数を求める際には最初の問い合わせ関数のみが必要)」「各変数にXを加える(変数は0になったり9999を超えたりすることはない)」の3つの特性のうち一つがランダムに選択される。

  • リスト1の36個の中からランダムに問い合わせ関数が選択され、下部のディスプレーには1から999までの2つの数字とその間に英字が表示される。
  • 数字のキーパッドを押して数字を入力できる。これらは入力値として中央のディスプレーに表示される。12桁入力すると、新たな桁を配置するために左端の桁が削除される。
  • 「a」として入力された数値は、カンマボタン「,」を押すことでメモすることができる。「a」は2変数関数の一つ目の数値である。すると、左上のディスプレーに入力された数値(4桁以上表示されている場合は下4桁のみが入力される)が表示され、中央上のディスプレーにカンマが表示される。その後、二つ目の別の数値を、最初に入力したのと同じ方法で入力することができる。問い合わせの際、表示された両方の数値が同じか、どちらかの数値が直前のミスが記録されていない問い合わせで使用した数値と等しいか、どちらかの数値が0であれば、ミスが記録される。
  • 両方の数字が入力されたら、「Q」ボタンを押す。これにより二つ目の数字(4桁以上表示されている場合は下4桁のみが入力される)が右上のディスプレーに配置される。この値は「b」とする。さらに、入力結果が問い合わせ関数の出力結果に置き換えられる。モジュールを解除するのに必要な回答を含め、計算結果は最大12桁のみが使用され、関数が言及していない限り、表示直前にすべての小数が削除される。それが表示されている限りは、カンマボタンを押しても何も影響を与えず、カンマが入力されていない限り「Q」ボタンを押しても何も影響を与えない。
  • クリアボタン「C」を押すと、上と真ん中の入力内容が全て削除され新たな変数の入力が可能になる。
  • 1回以上問い合わせを使用したり、リスト1を使用して、使用されている問い合わせ関数を求め、上段の英字を表2に使用する。最終的な関数を求めるには、その英字の条件が真かどうかを確かめたら、特性の値を使用してX段移動(-1は上、+1は下)し、到達した補正値を使用して最終的な関数を求める。必要であればループする。
  • 下のディスプレーに入力値とした最終的な関数の結果をキーパッドを使って回答し、送信ボタン「S」を押して送信する。
  • 最上位桁は左端にあり、最も重みがある桁であるため、一の位よりも十の位の方が上位である。

リスト1:関数一覧

  • #0: (aから3を引いた数)の絶対値の(bから3を引いた数)の絶対値倍
  • #1: 大きい方の数を小さい方の数でモジュロした数
  • #2: 10,000を大きい方の数でモジュロした数
  • #3: 7
  • #4: (大きい方の数を小さい方の数で除算し。小数点以下を切り捨てた数)を10でモジュロした数
  • #5: 奇数の個数を三倍した数
  • #6: 10から((aの桁数からbの桁数を引いた数)の絶対値)を引いた数
  • #7: (aの各桁の和)の(bの各桁の和)倍
  • #8: aのb倍
  • #9: aにbを加えた数を12でモジュロした数
  • #10: 最も数字が大きい桁
  • #11: ((aを10でモジュロした数)の立方)に((bを10でモジュロした数)の立方)を加えた数
  • #12: 月の加算
  • #13: (10,000からaを引いた数)の絶対値の(1,000からbを引いた数)の絶対値倍
  • #14: (大きい方の数を小さい方の数でモジュロした数)を8でモジュロした数
  • #15: 他と異なっている桁の数字の個数
  • #16: 小さい方の数引く(大きい方の数を小さい方の数でモジュロした数)
  • #17: 他と異なっている奇数の桁の数字の個数
  • #18: ((a + b)の10倍)に((a - b)の絶対値を10でモジュロした数)を加えた数
  • #19: aにbを加えた数
  • #20: (aのb倍)を(ポート + 2)で除算した数(小数点以下を切り捨て)
  • #21: (aのb倍)を10でモジュロした数
  • #22: 他と異なる存在しない桁の数字の個数
  • #23: (大きい方の数を小さい方の数でモジュロした数)の小さい方の数倍
  • #24: a + (bの平方)
  • #25: 11から二桁ではない変数の個数の二倍を引いた数
  • #26: (aから(2のb倍)を引いた数)の絶対値
  • #27: (aのb倍)を73でモジュロした数
  • #28: aとbの桁数の1,500倍
  • #29: 3に2,500より大きい数字の個数を加えた数
  • #30: (aの平方) + b
  • #31: 大きい方の数を(aとbの桁数)で除算した数
  • #32: a + b + シリアルナンバーの各数字を連結した数+ 1
  • #33: 8から(100未満の数字の個数)を引いた数
  • #34: (aを50でモジュロした数) + b
  • #35: 大きい方の数を小さい方の数で除算した数(小数点以下を切り捨て)

表2:英字による補正

条件
A:シリアルナンバーにKBUMのいずれかが含まれている? +6 -4
B:バッテリー、インジケーター、ポートのうちいずれかの個数 = 2? +2 -3
C:シリアルナンバーの最初の文字は数字? +5 -4
D:点灯したBOBインジケーターがある? +8 -8
E:点灯していないBOBインジケーターがある? +6 -2
F:シリアルナンバーの最初の文字は英字? +6 -5
G:パラレルポートがあるが、シリアルポートがない? +1 -5
H:空のポートプレートが少なくとも1つある? +1 -3
I:バッテリーがない? +1 +5
J:シリアルナンバーに母音がある? +5 -3
K:インジケーターの個数 > 3? +4 -1
L:バッテリーの個数は偶数? +6 +7
M:ポート > インジケーター? +3 -7
N:点灯していないインジケーターより点灯したインジケーターの方が多い? +3 -5
O:インジケーター > バッテリー? +6 -1
P:インジケーターの個数は偶数? +2 -3
Q:シリアルナンバーにERISのいずれかが含まれている? +1 -3
R:シリアルナンバーにちょうど3つの英字が含まれている? +3 -2
S:バッテリー > ポート? +2 +4
T:バッテリーの個数 > 4? +4 +1
U:点灯したインジケーターと点灯していないインジケーターの数が同じ? +2 -2
V:シリアルナンバーにJQXZのいずれかが含まれている? +7 +1
W:少なくとも3つのポートがある? +3 -5
X:インジケーターがない? +3 -3
Y:シリアルナンバー内の数字の個数が4以上? +4 -1
Z:ポートがない? +5 -1

付録F:数学(とその他)の用語

絶対値もしくは|x|:Xと0との距離。|2 - 6| = 4
すべての桁の整列:重複した桁を無視してから、左から右に読んだ各桁。12814のすべての桁を整列すると1284となる。
連結:つなぎ合わせること。「Cheese」と「burger」を連結させると「Cheeseburger」になる。7と3を連結させると73になる。
立方:自身を乗算し、更に乗算する。2の立方は8。
数字根:各桁同士を、一桁になるまで足し続ける。129の数字根は3である。
月の加算:各桁を合計する代わりに、各位(一の位、十の位など)で大きい方の桁を取得する加算方法。月の算術では、184+229 = 289になる。
モジュロ:除算の剰余を示す。10を3でモジュロすると1になる。
べき乗数:自身を乗算する回数。立方数はべき乗数が3のときの結果と等しい。
sqrt(x):平方根を示す。sqrt(9) = 3である。技術的には-3も取れるが爆弾解除では正の値にするため、このモジュールでは平方根の負の値は考えなくてよい。
平方:自身を乗算する。5の平方は25である。
ゼロ:0は偶数である。出力が存在しない場合、出力は0になる。