SUDSI配列(SUの M、D ifference、S WAP、I ncrement)が表示されますではなくカオス的挙動を示すために、その好奇心整数配列です。次のように生成できます。
してみましょうSは、自然数の無限リストであります:1 2 3 4 5 6 ...
。してみましょうSを、私は 1インデックス表す私の番目の要素S。したがって、最初は、 S 1は1、S 2は2などです(S 0はありません)。
S 1およびS 2から開始...
- それらの合計を計算します。
sum = S1 + S2
- それらの絶対差を計算します(大きい方から小さい方を引いたもの):
diff = |S1 - S2|
Sの2つの値を和と差のインデックスで交換します。
swap(Ssum, Sdiff)
作業しているSのインデックスを増やします。したがって、次回はS 2とS 3の合計と差を計算し、その後の時間はS 3とS 4などになります。
- このプロセスを無期限に繰り返します。
このプロセスが適用されるSの最初のいくつかの段階を以下に示します。括弧[]
は、合計および差分される2つの値を囲みます。
オリジナルS:
[1 2] 3 4 5 6 7 8 9 10 11 12 ...
後S 3(3 = 1 + 2
)とS 1(1 = |1 - 2|
)交換されます。
3 [2 1] 4 5 6 7 8 9 10 11 12 ...
後S 3及びS 1がスワップされています。
1 2 [3 4] 5 6 7 8 9 10 11 12 ...
後はS 7とS 1がスワップされています。
7 2 3 [4 5] 6 1 8 9 10 11 12 ...
後はS 9およびS 1がスワップされています。
9 2 3 4 [5 6] 1 8 7 10 11 12 ...
後はS 11とS 1がスワップされています。
11 2 3 4 5 [6 1] 8 7 10 9 12 ...
後はS 7とS 5が交換されます:
11 2 3 4 1 6 [5 8] 7 10 9 12 ...
等
SUDSIシーケンスは、これらの各リストの最初の要素のシーケンスとして定義されます。したがって、SUDSIシーケンスの最初のいくつかの用語は1 3 1 7 9 11 11
です。
SUDSIシーケンスの最初の200の用語を次に示します(1行あたり20):
1 3 1 7 9 11 11 11 15 15 19 19 19 19 19 19 19 19 19 19
19 19 19 19 19 19 19 19 57 59 59 59 59 59 59 59 59 59 77 79
81 83 85 87 89 91 91 91 91 91 91 91 91 91 91 91 91 91 115 115
121 123 125 127 127 127 127 127 137 139 141 143 145 147 147 147 147 147 147 147
147 147 147 147 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167
167 167 167 167 209 211 211 211 211 211 221 223 223 223 223 223 223 223 223 223
223 223 243 243 243 243 243 243 257 259 261 263 263 263 263 263 263 263 263 263
263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263
263 263 325 327 329 331 331 331 331 331 331 331 331 331 349 351 351 351 351 351
361 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363
(少なくとも私には)将来の用語を予測する方法は不明です。用語は常に奇数であり、減少しない(2番目の用語の後)であり、いくつかの数字は何度も繰り返されると言っても安全です。
チャレンジ
正の整数nを取り込んで、SUDSIシーケンスのn番目の項を出力または返すプログラムまたは関数を作成します。たとえば、nが1の場合、出力は1
です。nが2の場合、出力は3
です。nが200の場合、出力は363
です。
通常の方法で入力を行います(stdin / command line / function arg)。バイト単位
の最短回答が優先されます。
(そのサイトは物事をUTF-8でエンコードしますが、必要な既存のエンコードを使用できます。)
Mathyボーナス:(賞金の対象になる可能性があります)
- SUDSIシーケンスについて詳しく教えてください。どの数字がその一部であり、いくつあるか(そしてそのようなもの)の基本パターンは何ですか?(ところで、OEISで SUDSIが見つかりませんでした。)