プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

1
PreludeをBefungeに翻訳
これがウィークリーチャレンジ#2です。テーマ:翻訳 Preludeでプログラムのソースコードを取り込み、Befunge-93で同等のプログラムのコードを出力するプログラムまたは関数を記述します。プログラムを同等にするには、所定の入力に対してPreludeプログラムと同じ出力を生成し、Preludeプログラムが停止する場合にのみ停止する必要があります。 入力言語:プレリュード Pythonインタープリター: コードスニペットを表示 #!/usr/bin/python import sys NUMERIC_OUTPUT = True NUMERIC_INPUT = True try: filename = sys.argv[1] except: print "Usage:", sys.argv[0], "<filename>" raise SystemExit try: inFile = file(filename) except: print "Error when opening", filename raise SystemExit # code is kept as a list of voices, each voice a string …

8
アレイをジャンプ!
jump the arrayというワンプレイヤーゲームをプレイしましょう。プレイするには、整数の配列、たとえばのみが必要aです。ある位置から開始しi、各ターンで新しい位置にジャンプします。順番にn、 n偶数の場合、絶対位置にジャンプしa[i] mod length(a)、 nが奇数の場合、相対位置にジャンプします(i + a[i]) mod length(a)。 配列のインデックス付けはゼロから始まります。最初のジャンプをturn 0またはturn としてカウントできます1。これにより、異なるゲームができます。ゲームの状態空間は有限であるため(あなたの動きは自分の位置とターン番号のパリティによって決定されます)、もちろん最終的には偶数の長さのループに入ります。表すloop(a, i, b)最初のジャンプがターンとしてカウントされ、このループの長さ、b。 入力 aゲームをプレイする整数の空でない配列。 出力 pある位置から開始しi、最初のターンをかのいずれかとしてカウントする0場合1、最終的にlengthのループに入るような最大数2 * p。言い換えれば、あなたの出力は数字です max { loop(a, i, b)/2 : i in [0 .. length(a)-1], b in [0,1] } ルール 機能または完全なプログラムを提供できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース [0] -> 1 [-213] -> 1 [1,3,12,-1,7] -> 1 [2,3,5,7,9,11,13,17,19] …

7
Hamming(7,4)を使用してエラーを修正
Hamming(7,4)コードは1950年に遡ります。当時、Richard HammingはBell Labsで数学者として働いていました。毎週金曜日、ハミングは一連の計算を実行するように計算機を設定し、次の月曜日に結果を収集しました。パリティチェックを使用して、これらのマシンは計算中にエラーを検出できました。ハミングはエラーメッセージを頻繁に受信するため、エラー検出を改善することを決め、有名なハミングコードを発見しました。 ハミングの力学(7,4) ハミングコードの目標は、データビットまたはパリティビットのシングルビットエラー(1ビットが反転)を検出して修正できるように、重複するパリティビットのセットを作成することです。複数のエラーが発生した場合のみ、ハミングコードは元のデータの回復に失敗します。エラーにまったく気付かないか、誤って修正することさえありません。したがって、この課題では、シングルビットエラーのみを扱います。 ハミングコードの例として、ハミング(7,4)コードを見てみましょう。4ビットのデータに加えて、次の式を使用して計算さd1, d2, d3, d4れる3つのパリティビットp1, p2, p3を使用します。 p1 = (d1 + d2 + d4) % 2 p2 = (d1 + d3 + d4) % 2 p3 = (d2 + d3 + d4) % 2 結果のコードワード(データ+パリティビット)はの形式p1 p2 d1 p3 d2 d3 d4です。 エラーの検出は次のように機能します。パリティビットを再計算し、受信したパリティビットと一致するかどうかを確認します。次の表では、あらゆる種類のシングルビットエラーが、パリティビットの異なる一致をもたらすことがわかります。したがって、すべてのシングルビットエラーをローカライズおよび修正できます。 error in bit | …

4
月の大きさを計算する
月の謎の大きさ 月のサイズが変わることを聞いたことがあると思います。あなたが恋をしていて幸運なとき、月は通常の状況に比べてほぼ2倍の大きさです。一部の人々は、理由はレンズとして機能する雰囲気だと言います。他の人は、近くの木など他のオブジェクトとの比較の問題にすぎないと考えています。どのような説明を読んでも、それは非常に主観的なものです。 月の科学の大きさ プログラマーですよね?事実に頼っていますよね?だからここに実験があります: 時間と絞りの手動設定をサポートする素敵なカメラを用意してください。 カメラを最大ズームレベルに設定します。 外に出て、月の写真を撮って、最適な設定を検出して、月がシャープになり、照明がちょうど良いようにします。 設定を覚えておいてください 月が大きいか小さいと思うたびに、これらの設定で月の写真を撮ります。 月のサイズをピクセルで計算する カメラは嘘をつきませんよね?明るいピクセルを数えることで、月の大きさを少なくともピクセル単位で効果的に測定できます。 サイズがすべての写真で同じ場合、それは私たちの脳のバグです。サイズが異なる場合、推測の余地があります 月は本当に成長します(しかし、それは何を食べますか?) 大気のレンズ効果があります 月は楕円曲線を持ち、時には近く、時には地球から遠く離れています ... ただし、タスクが完了するまで開いたままにします。もちろん、ソフトウェアが月のサイズを正確に計算できるかどうかを事前に知りたいと思うでしょう。 タスク 月の最適化された写真をいくつか与えて、月のサイズを計算してください。最適化は次のとおりです。ピクセルは黒または白です。間に何もない。アンチエイリアスなし。これで簡単になりますよね? 警告:月はいつも満杯ではありません、あなたは知っています...それは鎌でありえます!しかし、鎌の形であっても、月のサイズは大きくなります。したがって、フルサイズを計算してください。 プログラムは、PNGを入力として受け取ります。たとえばstdin、プログラムの代わりに関数を記述する場合、ファイル名のコマンドライン引数として、または(標準フレームワークライブラリの)Bitmapオブジェクトとしてパイプされます。 プログラムは、適切な入力ビットマップサイズで動作しますが、必ずしも正方形ではありません。150ピクセルの最小幅と高さが保証されています。 満月は写真の少なくとも25%を覆います。 プログラムは、満月のように計算された月のサイズをピクセル単位で出力します。 月は完全な球体であると仮定します。 正確なサイズは常に整数ですが、計算で返される場合は10進数を出力できます。 精度は98%から102%の間でなければなりません。(それは私が達成できると保証できるものよりもむしろ推測です。到達するのが難しすぎると思われる場合は、コメントを残してください。) 更新: 月の中心は必ずしも写真の中央にあるとは限りません。 最小の可視領域は月の5%またはピクセルの総数の1.25%です。 写真は、月全体が画像に合うように撮影されます。つまり、ピクセルの総数は月のサイズの上限です。 月は切り取られません。 サンプル 必要に応じて、ブレンドファイルを使用して独自のサンプルを生成できます。次の写真を作成しました。WhitePixelCounter.exe(.NETが必要)を使用してPNGファイル内のピクセルをカウントし、イメージに黒と白のピクセルのみが含まれているかどうか、およびそれらの数を確認できます。 次の256x256ピクセルの画像は白いピクセルの量が異なりますが、計算された月のサイズは16416ピクセルになります。 そして、これらの177x177ピクセルの画像は10241ピクセルを返すはずです。画像は基本的に同じですが、今回は焦点距離の異なるカメラが使用されました。 結果が9988の非正方形および非中心サンプル: ああ、私は今のところリファレンス実装を持っていませんし、何かを実装できるかどうかさえ知りません。しかし、私の脳には、数学的に解決可能でなければならないという強い信念があります。 ルール これはコードゴルフです。2015-03-30の最短コードが受け入れられます。

3
ASCIIトランプを引く
これらの15のASCII トランプパターン(エース、ジョーカー、および裏面)を考えてみましょう。ここXで、スーツシンボルのプレースホルダーは次のとおりです(行間隔が少ない方が見栄えがよくなります)。 ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- |AX | |2X | |3X | |4X | |5X | |6X | |7X | |8X | |9X | |10X | |JX | |QX | |KX | |J | |* * * * * …

7
グレゴリオ教会の音楽を整理する
年は930年であり、グレゴリオ教会は問題を抱えています。彼らは数千ページの聖歌音楽を持っていますが、問題は実際の組織システムではなく、すべての楽譜が単に山に投げ込まれたことです。 Cartographers 'Guildのユーザーgamerprinterによる画像。 教会はすべての楽譜を整理する必要があるため、中世のソフトウェアエンジニアを雇ってプログラムを作成し、彼らのために整理しました。あなたは雇用されたソフトウェアエンジニアです。しかし、中世の編集プロセスでは、遅い聖書の筆記者のチームによってプログラムが紙に書き込まれます。スクライブのチームがコードをコンパイルするのにかかる時間を短縮するには、プログラムをできるだけ小さくする必要があります。 教会は、聖歌音楽が書かれている音階に基づいて編成されることを望んでいます。教会の聖歌音楽はすべてドリアン音階で書かれています。特定の音楽の音符が与えられると、プログラムはそれが入っているドリアン音階を出力します。ここでは、ドリアン音階とは何かを正確に説明します。すでに知っている場合は、このセクションをスキップできます。 どのメロディにも12の音符があります。ここに順序があります: C C# D D# E F F# G G# A A# B 半音は、(使用して表されるS)の周りにラッピング(Bから半音アップバックCすることであろうように)、右に一歩をインクリメントします。トーン(使用して表現はT)2つの半音です。たとえば、F#からの半音はGです。F#からの半音はG#です。 ドリアンスケールを作成するには、リスト内の任意の音符から始めて、次のパターンで上に移動し、検出した音符をリストします。 T, S, T, T, T, S 例。私はAから始めます。ドリアンスケールのノートは次のようになります。 A B (up a tone) C (up a semitone) D (up a tone) E (up a tone) F# (up a tone) G (up …
19 code-golf  music 

30
文字列からバイナリ
これはコードゴルフの挑戦です。タイトルが言うように、ASCII文字列をバイナリに変換するプログラムを作成します。 例えば: "Hello World!" に変わるはず 1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100 100001です。 注:特にpythの実装に興味があります。

11
デイ3のランダムゴルフ:整数分割
シリーズについて まず、これを他のコードゴルフチャレンジと同様に扱い、シリーズについてまったく心配することなく答えることができます。ただし、すべての課題にリーダーボードがあります。最初の投稿では、リーダーボードとシリーズに関する詳細情報を見つけることができます。 このシリーズにはたくさんのアイデアが並んでいますが、将来の課題はまだはっきりしていません。何か提案があれば、関連するサンドボックスの投稿でお知らせください。 穴3:整数分割 難易度を少し上げる時間です。 パーティション正の整数のは、nその和に正の整数のマルチセットとして定義されますn。例として、n = 5次のパーティションが存在します。 {1,1,1,1,1} {2,1,1,1} {2,2,1} {3,1,1} {3,2} {4,1} {5} これらはマルチセットであるため、順序はなく、{3,1,1}で{1,3,1}あり{1,1,3}、すべて同一であると見なされます。 あなたのタスクは、nのランダムなパーティションを生成することですn。詳細なルールは次のとおりです。 生成されるパーティションの分布は均一でなければなりません。つまり、上記の例では、各パーティションは1/7の確率で返される必要があります。 もちろん、PRNGの技術的な制限により、完全な均一性は不可能です。提出物の均一性を評価するために、次の操作は完全に均一な分布をもたらすと見なされます。 (ほぼ)均一であることが文書化されているPRNGから(任意の範囲で)数値を取得する。 モジュロまたは乗算(または値を均等に分散する他の演算)を介して、大きな数のセットにわたる均一な分布を小さなセットにマッピングします。大きいセットには、小さいセットの少なくとも1024倍の値が含まれている必要があります。 パーティションはマルチセットであるため、任意の順序でパーティションを返すことができ、この順序は一貫している必要はありません。ただし、ランダム分布の目的では、順序は無視されます。つまり、上記の例では{3,1,1}、{1,3,1}とが{1,1,3} 一緒に返される確率は1/7でなければなりません。 アルゴリズムには確定的なランタイムが必要です。特に、ランダムなマルチセットを生成し、合計がでない場合は拒否できませんn。 アルゴリズムの時間計算量はの多項式でなければなりませんn。特に、すべてのパーティションを単純に生成してランダムに選択することはできません(パーティションの数は指数関数的に増加するためn)。使用しているPRNGは、値ごとにO(1)で均一に分布した値を返すことができると仮定できます。 このタスクを解決する組み込み関数を使用しないでください。 完全なプログラムまたは関数を作成し、STDINまたは最も近い代替、コマンドライン引数または関数引数を介して入力を取得し、戻り値またはSTDOUT(または最も近い代替)に出力して出力を生成できます。 n ≤ 65(パーティションの数が2 21未満であると)仮定することができます。出力は、便利で明確なリスト形式または文字列形式です。 関数を送信する場合は、関数を何度も呼び出して結果を出力する小さなテストプログラムの提供も検討してください。コード内でパラメーターを調整する必要がある場合でも問題ありません。これは、ソリューションが少なくともほぼ均一であることを人々が確認できるようにするためです。 これはコードゴルフであるため、最短の提出(バイト単位)が優先されます。そしてもちろん、ユーザーごとの最短投稿もシリーズの総合リーダーボードに入ります。 リーダーボード シリーズの最初の投稿はリーダーボードを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、すべての回答を見出しで開始してください。 # Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby, <s>104</s> <s>101</s> 96 bytes (言語は現在表示されていませんが、スニペットはそれを必要とし、解析します。将来、言語ごとのリーダーボードを追加するかもしれません。)

13
シェルピンスキー層
はじめに、そのような下に線を追加することにより、パターンのようなシェルピンスキーの三角形/\を作成することができます... ゆるい枝/または\2つの枝に再び分割されます/\。 ブランチの衝突は、その\/下に何も(スペースはありません)死んでしまいます。 これらの規則を繰り返すと、 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ etc... (ViHartによるインスピレーション) 正の整数Nを取り込んで、このパターンの最初のN行をstdoutに出力するプログラムまたは関数を作成します。必要以上に先行または後続のスペースはありません。 たとえば、入力が1出力の場合、 /\ 入力が2出力の場合 /\ /\/\ 入力が8出力の場合 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ /\ /\ /\ /\ /\/\/\/\/\/\/\/\ 等々。 最小バイトのコードが優先されます。

8
一般化されたQuine Generator
チャレンジ このチャレンジでは、ソース言語 Sとターゲット言語 を指定しますT。あなたの仕事は、次のプログラムPを言語で書くことですS。Q言語の有効なプログラムがのT入力として与えられた場合、入力と出力を受け取らない言語のP有効なプログラム、つまりのソースコードに適用されるプログラムを出力します。さらに、答えには自明ではないサンプルプログラム(より面白く、より良いが、これに対してポイントを獲得しませんが)、結果のプログラム、およびの出力を提示する必要があります。これはコードゴルフですので、勝つための最短のコードです。RTQ(R)QRQRRP 言い換えれば、これは、任意のタイプの一般化されたクインを作成できる「ユニバーサルクインコンストラクター」の作成に関する課題です。 明確化 ソース言語とターゲット言語は同一である場合があります。 プログラムPは、すべての出力プログラムと同様に、入力として1つのストリング(STDINまたは同等のものから)を受け取り、1つのストリング(STDOUTまたは同等のものへ)を出力する必要がありますR。 入力プログラムQも文字列を別の文字列に変換する必要がありますが、その形式はより柔軟です:文字列から文字列への関数、特定の名前の変数を変更するコードスニペット、ターゲット言語の場合にデータスタックを変更するスニペットなどがありQます。たとえば、コメントを含めないことを指定することで、の形式をさらに制限することもできます。ただし、任意の計算可能な文字列から文字列への関数を入力プログラムとして実装できる必要があり、それらがどのように機能し、どのような制約を課すかを明示的に指定Qする必要があります。 出力プログラムRは、実際には(一般化された)クインである必要があります。Qしたがって、そうしない限り、入力(ユーザー入力、ファイルなど)を読み取ってはなりません。 標準の抜け穴は許可されていません。 例 ソース言語としてPythonを選択し、ターゲット言語としてHaskellを選択し、さらに入力プログラムがString -> Stringという名前の関数の1行の定義であることを要求するとしますf。文字列反転プログラムを与えると f x = reverse x Pythonプログラムへの入力としてP、別のHaskellプログラムのソースコードを出力しますR。このプログラムは、のソースコードをSTDOUTに出力しますRが、逆になります。Pアイデンティティ関数が与えられた場合 f x = x 入力として、出力プログラムRはクインです。

6
N番目の文字を実行してNを取得します
最初の文字とその後のN番目のすべての文字を新しいプログラムに結合すると、出力はNになるように、可能な限り最短のプログラムを作成します。これは、N = 1、2、...、16で機能する必要があります。 あなたがあればそれを言うための別の方法は、ある削除プログラムからのすべての文字を除い最初の1とその後のN番目ごとの1、残りのコードの出力はNでなければなりません 例 あなたのコードが ABCDEFGHIJKLMNOP N = 1の結果はになりABCDEFGHIJKLMNOPます。これを実行すると、1が出力されます 。N= 2の結果はになりACEGIKMOます。これを実行すると、2が出力されます 。N= 3の結果はになりADGJMPます。これを実行すると、3が出力されます 。N= 4の結果はになりAEIMます。これを実行すると、4が出力されます 。N= 5の結果はになりAFKPます。これを実行すると、5が出力されます 。N= 6の結果はになりAGMます。これを実行すると、6が出力されます 。N= 7の結果はになりAHOます。これを実行すると、7が出力されます 。N= 8の結果はになりAIます。これを実行すると、8が出力されます 。N= 9の結果はになりAJます。これを実行すると、9が出力されます 。N= 10の結果はになりAKます。これを実行すると10が出力されます 。N= 11の結果はになりALます。これを実行すると、11が出力されるはずです 。N= 12は、AM。これを実行すると、12が出力されます 。N= 13の結果はになりANます。これを実行すると13が出力されます 。N= 14の結果はになりAOます。これを実行すると、14が出力されます 。N= 15の結果はになりAPます。これを実行すると、15が出力されます 。N= 16の結果はになりAます。これを実行すると、16が出力されるはずです。 詳細 ASCIIおよび非ASCIIのすべての文字が許可されます。(改行と印刷不能ASCIIも使用できます。キャリッジリターンとラインフィードは別個の文字としてカウントされることに注意してください。) スコアは、変更されていないプログラムの文字の長さです(例では15)。最も低いスコアが勝ちます。 16未満のスコアは明らかに変更できません。変更されたプログラムの少なくとも2つが同一になるからです。 出力は、ファイルまたは標準出力、またはその他の妥当なものに出力される場合があります。ただし、16の異なるプログラムの出力はすべて同じ場所に移動する必要があります(たとえばAO、stdoutにA行くがファイルに行く場合は大丈夫ではありません)。入力はありません。 出力は16進数ではなく10進数でなければなりません。実際の出力には、1から16までの数字を構成する1または2文字のみが含まれている必要があります。(Matlabのようなものans =は問題ありません。) プログラムは、N = 17以上で機能する必要はありません。

2
10,000の評判を獲得しておめでとうございます!
@MartinBüttnerが正確に10,000の評判を達成した後、ユーザーページに1万人のユーザーの3つの完全な行があります!さて、私たちは全員プログラマーなので、手動で行うのではなく自動化するのが好きです。あなたの課題は、新しい1万人のユーザーを自動的に祝福するプログラムを作成することです。 仕様 入力 入力はn、スペースで区切られた数字の行になります。(必要に応じて、コードを短くする場合は、スペースで区切られた数字のコンマ区切りリストを1つ使用することもできます。)次に例を示します。 10 20 30 40 50 15 25 35 45 55 20 30 40 50 60 または: 10 20 30 40 50,15 25 35 45 55,20 30 40 50 60 数字の各リストは、1日のユーザーの評価値のリストを表します。 出力 出力は、同じn行数(または同じ長さのコンマ区切りリスト)になります。各行/リスト項目は次のとおりです。 :D レピュテーションが10,000以上になったユーザーがいた場合。 :D10,000人の担当者に会った、または合格したユーザーが複数いる場合は、スペースで区切られた複数の。たとえば、:D :D :D3人の新しい1万人のユーザー向け。 :( 入力があいまいまたは不可能な場合は、さらに出力を停止します(これについては次のセクションで詳しく説明します)。 これらの条件のどちらも当てはまらない場合は何もありません。 あいまいさ 入力があいまいである可能性があります。この課題のために、次のことを想定しています。 レピュテーションキャップは1日あたり200であり、チャレンジのために受け入れや賞金などを無視します。 ユーザーは評判を失うことはありません(これも単純さと挑戦のためです)。 どの評価値がどのユーザーに対応するかを判断できない場合、入力はあいまいと見なされます。たとえば、入力10 20,30 …
19 code-golf 

30
繰り返される数字で配列を作成する
チャレンジ この質問のタスクは、nSTDIN、ARGV、または関数の引数を介して入力として正の整数(0より大きい)を取り、STDOUTまたは関数の戻り値を介して配列を出力するプログラムまたは名前付き関数を作成することです。 簡単に聞こえますか?今ここにルールがあります 配列は唯一の整数が含まれています1へn から1までの各整数は、各整数の値である回数n繰り返される必要があります。xx 例えば: 入力: 5 出力: [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5] 配列はソートされる場合とされない場合があります。 これはコードゴルフなので、勝者はバイト単位の最短コードです。 ボーナス 0.5出力配列内の隣接する2つの整数が同じでない場合、スコアを乗算します。 たとえばn = 5、そのような構成の1つは [5, 4, 5, 4, 3, 4, 5, 2, 5, 3, 1, 2, 3, 4, 5]

2
用紙の折り畳みを最適化して、インクのしみを軽減します
プリンタ用紙の白いシート全体に濃い黒のインクが飛び散っています!明らかな解決策は、インクが拡散するにつれて黒と白の部分が一致し、両方が灰色になるように紙を折り畳むことです。次に、用紙がすべて灰色になるまで展開し、再折りたたみします。 これらの折り畳みを作成する最適な方法を見つけることは、このコーディングの課題におけるあなたのタスクです。このペーストビンには、1と0の4つの異なるサイズのグリッドが含まれています。各グリッドは、インクが飛び散った紙を表しており、これを灰色にする必要があります。ゼロは紙で、ゼロはインクです。 これらのグリッドでは、行と列の間のスペースに沿った水平および垂直の折り畳みのみが有効です。折り畳まれると、重複する値のペアが平均化されます。折り畳みは一度に1つずつ行われ、常に展開されます。折り目はインクの分布のみを変更し、用紙のサイズは変更しません。 Rnは、グリッドの左端をn番目の列の後から右に折り畳むことを示します。Dnは、グリッドの上端を下方向に折り畳むことを示し、n番目の行の後から始まります。(nは1から始まる) 例 このグリッドを考える 0 1 1 1 0 0 0 0 0 0 0 0 D1フォールドとは、「一番上の行全体を下に折りたたんで展開する」ことを意味します。 0 0.5 0.5 0.5 0 0.5 0.5 0.5 0 0 0 0 次に、R2が生成します 0.25 0.5 0.5 0.25 0.25 0.5 0.5 0.25 0 0 0 0 別のR2は何も変更しません。 ゴール あなたの目標は、毎回正確に8つの折り畳みを使用して、4つのグリッドのそれぞれに最適なインク拡散折り畳みシーケンスを見つけるアルゴリズムを作成することです。折り目は、RまたはDの任意の組み合わせです。 得点 提出のスコアは、各グリッドのスコアの合計です。グリッドのスコアは、各値とその平均値の絶対差の合計(合計を面積で除算したもの)です。スコアが低いほど優れています。スコア0は完璧ですが、たった8倍では不可能でしょう。 回答にコードを入れて、4つの8ステップ折りたたみシーケンスを報告する必要があります。これは、アルゴリズムが実際に機能することを確認するためです。 …

20
Ulam番号を生成する
整数n(where n < 10001)を入力として、最初のn Ulam番号を出力するプログラムを作成します。Ulam番号は次のように定義されます。 U 1 = 1、U 2 = 2。 の場合n > 2、U nは、正確に1つの方法で2つの異なる以前の用語の合計であるU n-1よりも大きい最小の整数です。 たとえば、U 3は3(2 + 1)、U 4は4(3 + 1)(用語は区別されないため(2 + 2)はカウントされない)、U 5は6(U 5は5ではないことに注意してください)5は2 + 3または4 + 1として表現できるためです。最初のいくつかのウラム番号は次のとおりです。 1, 2, 3, 4, 6, 8, 11, 13, 16, 18, 26, 28, 36, 38, 47, 48, 53, 57, …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.