タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

5
即時流出選択のシミュレーション
選挙です!私たちがいる領域は、インスタントランオフと呼ばれる投票システムを実装しています(代替投票と呼ばれることもあります)または優先投票ます)。各有権者は、各候補者に番号を付けるまで、各候補者を最も優先度の高いものから最も優先度の低いものに「1」、2番目の候補に「2」などをマークします。この親しみやすいコアラに残りを説明させてください: (オリジナルから変更された画像 CC BY-NC-SA 3.0 AUライセンスの下で使用されるPatrick Alexanderによって)。 テキスト形式の即時流出の説明が必要な場合は、Wikipediaの記事も参照してください。 (注:可能性は低いですが、最少票数の候補が2人以上存在することもあります。これらの状況では、同じ確率でランダムに1つを選択して削除します。) このチャレンジでは、入力の最初の行は文字列のリストであり、これは選挙の候補者の名前です。これらの例では、パイプ区切り値を使用しましたが、言語に合わせて入力形式を自由に調整してください。 The Omitted Anti-neutrino|Placazoa|Alexander the Awesome|Tau Not Two|Semolina Sorcerer それに続いて n入力行は文字列のリストでもあり、それぞれが単一の投票を表します。最初のエントリは、#1の優先順位、次の#2の優先順位などを表します。たとえば、 Alexander the Awesome|Semolina Sorcerer|Tau Not Two|Placazoa|The Omitted Anti-neutrino つまり、その特定の投票の優先順位が最初にアレクサンダー、2番目にセモリナソーサラー、3番目にタウノット2などがあります。 投票を入力として、プログラムまたは機能が選挙の勝者を出力する必要があります。Python 3に、参照されていないリファレンス実装があります。 入力と出力の例 入力 Dionysius|Portal Butter|Alexander the Awesome|Red Trainmen Portal Butter|Alexander the Awesome|Dionysius|Red Trainmen Dionysius|Portal Butter|Alexander the Awesome|Red Trainmen Portal Butter|Red …
15 code-golf 

20
入力を方向に変換
チャレンジ <n1>, <n2>numberが-1、0、または1 の形式の入力を指定すると、対応する基本方向を返します。正の数値はx軸で東に移動し、y軸で南に移動し、負の数値はx軸で西に移動し、y軸で北に移動します。 出力は次の形式でなければなりませんSouth East、North East、North。大文字と小文字が区別されます。 入力が0、0の場合、プログラムはを返す必要がありますThat goes nowhere, silly!。 サンプル入力/出力: 1, 1 -> South East 0, 1 -> South 1, -1 -> North East 0, 0 -> That goes nowhere, silly! これはcode-golfで、バイト単位の最短回答が勝ちです。

20
ネストされた配列を視覚化する
ネストされた配列が与えられます。プログラムは配列を視覚化する必要があります。 しかし..どうやって? たとえば、のようなネストされた配列があるとし[["1","2"],[["1","2"],"3"],"4",[[[["5"]]]],"6"]ます。 このネストされた配列は、次のように視覚化できます。 ->1 ->2 -->1 -->2 ->3 >4 ---->5 >6 例 Input 1: ["Atom",["Proton",["Up Quark", "Up Quark", "Down Quark"], "Neutron", ["Up Quark", "Down Quark", "Down Quark"], "Electron"]] Output 1: >Atom ->Proton -->Up Quark -->Up Quark -->Down Quark ->Neutron -->Up Quark -->Down Quark -->Down Quark ->Electron Input 2: [["1","2"],["3","4"]] …

5
ロストイントランスレーション
これは 形式に慣れていない場合警官です。タグをクリックしてwikiに移動します。この質問に対する強盗のスレッドはありません。 警官 警官としての仕事は、整数シーケンスのオンライン百科事典から2つのシーケンスを選択し、1つのシーケンスのn番目の要素を入力として取り、2番目のシーケンスのn番目の要素を出力するプログラムを書くことです。次に、コードを含めて回答を作成し、選択したシーケンスを省略します。強盗は、あなたが選択したシーケンスを見つけようとします。あなたが考えていたシーケンスやプログラムのその他のシーケンスを見つけることができた場合、あなたの答えをクラック済みとしてマークする必要があります。強盗が、有効ではないと思われるひび割れを通知した場合、ひび割れではないという証拠を提示できます。それ以外の場合は、マークする必要があります。 7日間クラックされていない通常の回答に従って、安全とマークされる資格があります。警官は、彼らが念頭に置いていたシーケンスを明らかにすることにより、彼らの答えを安全とマークするかもしれません。安全になったら、回答がクラックされることはなくなります。 目標は、プログラムのバイトカウントを最小限に抑えながら、クラックを発生させないことです。 例 次のPythonコードは、A000290のn番目の要素(正方形の数)をA000217(三角形の数)に変換します。 lambda x:sum(range(0,int(x**.5+1))) 規定と要件 有限であることが証明されていないシーケンスを選択した場合、OEISページにリストされている用語だけでなく、存在する可能性のあるすべての用語を出力する必要があります 無限精度の整数を持たない以前のルール言語の例外として、範囲外の数値を出力または入力する必要はありません。 入力シーケンスのサイズは、出力シーケンスよりも小さいことが証明されていてはなりません。 入力シーケンスに繰り返し要素を含めることはできません(そうでない場合、タスクはほとんど不可能です) OEISのページにインデックス(「OFFSET」ヘッダーの後の最初の番号)が含まれます。デフォルトで、nのオフセットです(nはシーケンスの最初の要素のインデックスと同じです)。あなたの答え。 OEISにリストされているオフセットとは異なるオフセットを選択した場合でも、入力シーケンスのすべての要素を出力シーケンスの対​​応する要素にマッピングする必要があります。 プログラムが入力シーケンスにない入力を受け取った場合、希望することは何でもできます(未定義の動作)。ただし、おそらく整数を出力することはおそらくあなたの最大の関心事です。 コードを実行するのに時間がかかったり、フリーでない言語を選択したりして、意図的にコードを実行するのを難しくするのはスポーツマンらしくないです。私は後者を実施しますが、前者を客観的に実施することはできません。しかし、楽しみのために、前者を試してはいけないことをお勧めします。前者を試してみてください。これは、コンピューターが弱い人にとっては特に難しいことです。 強盗 強盗としてのあなたの仕事は、割れていない、安全でない答えを選択し、それらがマップするシーケンスを見つけることです。解決策が見つかった場合、動作する解決策(必ずしも警官の意図した解決策であるとは限りません)で、適切な答えについてシーケンスをコメントします。 強盗は、2つの特定のシーケンスが解決策であることを確認することについてあまり心配するべきではありません。OEISのすべてのエントリに一致する場合は、解決策を投稿する必要があります。それが警官が念頭に置いていたシーケンスではない場合、警官はそれが間違っているという証拠を提供するか、彼らがそれを見つけることができない場合にひびが入っているとマークすることができます。

10
次のレベルへのWindowsエラーボックス
1つのことしかできないWindowsボックスを知っていますか? これを次のレベルに進めましょう! チャレンジ どこにでもカーソルの後に続くボタンを備えたダイアログボックスを作成してください! スペック 入力は受け付けられません。STDOUTまたはSTDERRに出力される場合があります。1つのボタンでウィンドウを開く必要があります(テキストは必要ありませんが、テキストはウィンドウタイトル、ダイアログボックス、またはボタンのいずれかに含まれる場合があります)。ボタンはクリック可能でなければならず、クリックできるように常にカーソルの下に置かなければなりません。クリックすると、何でもできますが、これをテストするため、コンピューターをクラッシュさせないでください...ボタンが押されていない限り、ダイアログボックスは開いたままにしておく必要がありますが、ボタンが閉じられたときに閉じる。 あなたができる仮定 カーソルが描画キャンバス内にとどまると想定できます。 ウィンドウのフォーカスが維持されると想定することもできますが、ボタンが押されない限り、ウィンドウのフォーカスを外してはなりません。 擬似コードの例 疑似コードの例を次に示します。 Open Dialog Box Add Button to Dialog Box at position X, Y WHILE True: SET Dialog Box to CursorX - X, CursorY - Y このチャレンジにはテストケースを提供できません これはコードゴルフのチャレンジなので、3月14日(Pi Day)までに最短の有効な提出が勝ちます!
15 code-golf 

13
コードの変更、シーケンスの変更:強盗
これは警官と強盗の挑戦です。警官のスレッドについては、こちらをご覧ください。 この課題には、警官によって選択された2つのOEISシーケンス(S 1、S 2)と、それらのシーケンスをどれだけうまくゴルフおよび難読化できるかが含まれます。 警官は、S 1を生成するコードAを構築し、S 2を生成するBを作成するのに可能な最良のレーベンシュタイン距離(文字数)であると主張する数値Xを与えます。 強盗の挑戦 特定の警官の提出物を解読するには、強盗は、S 2(n)を生成し、Y文字がA(with )から変更される回答と同じ言語(およびバージョン)のプログラムCを作成する必要があります。強盗は必ずしも警官が(密かに)生成したものとまったく同じBコードを見つける必要はありません。強盗の提出物は、警官の提出物で指定されたものと同じ0インデックスまたは1インデックスに準拠する必要があります。Y <= X これを管理する場合は、ソリューションに回答を投稿し、警官の回答にリンクし、警官の回答にコメントを残して自分にリンクします。 各警官の回答は1回しか解読できません。もちろん、自分の回答を解読することはできません。警官の答えがクラッキングされる前または後に無効であることが判明した場合、強盗のスコアにはカウントされません。 勝利と得点 強盗は(X - Y)*5 + 5クラックごとにスコアリングされ、全体的に最高スコアの強盗が勝ちます。 さらなるルール ハッシュ、暗号化、または乱数生成に組み込み関数を使用しないでください(乱数ジェネレーターを固定値にシードした場合でも)。 プログラムまたは関数のいずれかが許可されますが、コードはスニペットであってはならず、REPL環境を想定してはなりません。 便利な形式で入力して出力できます。入出力メソッドは、両方のシーケンスで同じでなければなりません。 この挑戦のためのレーベンシュタイン距離のための決定的な計算がある。この1プラネットCalcの上。 CnRチャレンジであることに加えて、これはコードゴルフであるため、すべての通常のゴルフルールが適用されます。

5
平均が最小の部分行列2.0を見つける
整数のn行m列の行列が与えられます。ここで、n、m> 3です。あなたの仕事は、平均値が最も低い3行3列の部分行列を見つけ、この値を出力することです。 規則と説明: 整数は負ではありません オプションの入出力形式 出力は、少なくとも2桁の小数点以下まで正確でなければなりません(整数でない場合)。 部分行列は、任意の列と行で構成できます テストケース: 1 0 4 0 1 0 1 0 4 0 1 0 4 3 4 3 4 3 1 0 4 0 1 0 Minimum mean: 0 (We have chosen columns 2,4,6 and rows 1,2,4 (1-indexed) ----------------------------- 4 8 9 7 5 …
15 code-golf  math  matrix 

6
連日があります!
実行された連続日数を追跡するプログラムを作成します。 日は深夜(プログラムが実行されているコンピューターの現地時間)にリセットされます。 プログラムが実行されない日がある場合、カウンターはゼロにリセットされます。 プログラムが実行されるたびに、その日にプログラムが初めて実行された場合は、カウンターが1日上がるはずです。これは、プログラムを初めて実行するときに、「1日間連続して!」と言う必要があることを意味します。 プログラムの出力は次の形式です。 You have a [streak_length] day streak! データを外部に保存したり、ソースコードを変更したりできます。 これはcode-golfなので、バイト単位の最短コードが勝ちです!
15 code-golf  date 

10
戦争ゲームの結果を見つける
戦争ゲームの結果を見つける 私が小学校にいたとき、「ロック紙はさみ」のようなゲームがありました。集会中、先生を待つとき、休憩時間などにプレイしました。「戦争」と呼びました。いくつかの検索の後、これは「ショットガンゲーム」(WikiHowによる)のはるかに単純なバリアントであることがわかりました。ルールがわずかに異なるため、これを「戦争」と呼びます。 2人が向かい合って座っています。ゲームの目的は、他のプレイヤーを「殺す」ことです。ターンごとに、次の3つの動きのいずれかをプレイできます。 リロード:あなたは一発の銃を持っています。毎回起動する前にリロードする必要があります。すでに弾薬を持っている場合のリロードは合法ですが、何もしません。リロードは、両手でこめかみをタップすることで象徴されました。各プレイヤーは弾薬0から始まります。 ガード:唯一の安全な動き。警備中に撃たれても、死なない。ガードは、胸に腕を組むことで象徴されました。 発射:銃を発射します。発射に成功するには、最後のショットからリロードする必要があります。相手がリロードしている場合、あなたが勝ちます。彼らも発砲し、あなたの両方が弾薬を持っている場合、それは引き分けです。彼らが警備している場合、弾薬を無駄にします。弾薬なしでの発砲は合法的な動きですが、何もせず、リロードのような脆弱性を残します。発射は、他のプレイヤーを指すことで象徴されました。 RPSと同様にプレイされました。各プレイヤーが同時に選択をスローダウンしました(互いのリズムを保つために、ターンの間に足を2回タップしましたが、それはチャレンジにとって重要ではありません)。 チャレンジ: あなたの仕事は、戦争ゲームの結果を見つけることです。関数または完全なプログラムを指定できます。 入力 各プレイヤーが各ターンで選択したオプションは、文字/文字列で表されます: r:リロード g:ガード f:火 入力は、ペアのリスト、区切られた/区切られていない文字列、またはこれらの行に沿ったその他のものです。 Pythonの入力例として、があります[("r", "g"), ("f", "r")]。これは、最初のターンで最初のプレイヤーがリロードし、2番目のプレイヤーがガードしたことを意味します。2番目のターンで、最初のプレイヤーが射撃し、2番目のプレイヤーがリロードします。プレイヤー1がこのゲームに勝ちます。同じ入力は、必要に応じとして表すことができ"r g f r"、"rgfr"、"rg fr" "rg-fr"... 次のことを想定できます。 入力は選択した形式と一致し、有効な文字のみが含まれます。 誰かが100ターン以内に死にます。 ただし、誰かが死んだときにターンが終了すると想定することはできません。 出力 誰が勝ったか(または誰が最初に勝ったか)を示す値*。各シナリオで何を出力するかを選択できますが、次のことを考慮する必要があります。 プレイヤー1が勝利 プレイヤー2が勝利 彼らはお互いを殺します(引く) 各結果には地区値が必要であり、各シナリオで常に同じでなければなりません。 例として、1プレーヤー1が勝った2とき、プレーヤー2が勝ったとき、および0引き分けの場合に出力できます。プレーヤー1が勝ったとき、プレーヤー2が勝ったとき、および引き分けの場合は常に出力する必要があります。120 返されるか、標準出力に出力されます。末尾の空白は問題ありません。 明らかなように、引き分けにつながる唯一のシナリオは、両方のプレイヤーが射撃し、両方が弾薬を持っている場合です。 *このチャレンジでは、誰かが死亡した後もターンが続く可能性があるため、最終的には1人以上のプレイヤーが勝つ可能性があります。入力に従って最初に勝った人を見つける必要があります。 テストケース(1P1が勝った2とき、P2が勝ったとき0、引き分けの場合): "rg fr" => 1 (P1 shot P2 while they were reloading) …
15 code-golf  game 

7
ASCII-Sockを編んでください
前書き 簡単に言えば、数日前に誤って靴下を編み始めたのですが、プレーンステッチのかなり論理的な構造からアイデアが生まれました。 入力 入力は、範囲内の偶数の整数Nです[2,30]。 出力 出力は明らかに靴下です。 構造 プレーンステッチのみを使用するvため、下向きのステッチと>右側のステッチにのみ使用します。以下の例を使用して、完全な構造を説明しN=8ます。 vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvv>>> vvvvvv>>>>>> vvvvv>>>>>>>>> vvvv>>>>>>>>>>>> vvvv>>>>>>>>>>>>>>>>>>>>>>>> vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> vvvv>>>>>>>>>>>>>>>>>>>>>>>> 最初のブロックは上部です。幅Nと高さがありますN*1.5 その後、かかとが始まります。幅になるvまで、右側から行ごとに1を引きますN/2。次にN/2、N/2下の幅の行を追加して、下向きのニットを完成させます。N/2 + 1幅を持つ行の合計を与えることに注意してくださいN/2 最初の部分: vvvvvvvv //begin with width N vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv // …

5
ソースコードを16進ダンプする
コードゴルフでは、通常は印刷できない文字を使用したことがあるため、コードの16進ダンプが必要になる場合があります。それでは、Hex Dumps自体のプログラムを作成してみませんか? チャレンジ この課題は、入力がなければ、ソースコードの16進ダンプを次の形式で出力することです。 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0020: 00 00 00 00 00 00 00 00 00 …
15 code-golf  quine 

5
Piの音を再生する
うん、あなたはタイトルを正しく読みます。piの音を再生します。 より具体的には、最初の1000のpiのすべての数字について、音符にマッピングし、結果のメロディをファイルに出力します。 基本的に、各数字はCメジャースケール(基本的に通常のスケール)の音符に変わります。したがって、1がミドルCに、2がD4に、3がE4に、9がD5に、というようになります。 ルール 各音符の長さは正確に0.5秒でなければなりません。 メロディには、開始3を含むpiの最初の1000桁が含まれている必要があります。 1から7はミドルCからB4、8はC5、9はD5、0はE5です この課題の前に作成されたものである限り、すべての適切にサポートされているファイル形式が許可されます。 開始と終了を含む、ファイルのどこにも一時停止がない場合があります。 演奏される楽器は関係ありません。正しい音が簡単に聞こえる限り、ピアノ、正弦波、その他何でもかまいません。 ファイルを除いて、入力を受け取らず、出力を生成してはなりません。他のファイルからの読み取りは許可されていません。 標準的な抜け穴は禁止されています。 数学コードの例: (*please forgive me for this horrible, horrible mess of code*) digits = RealDigits[Pi, 10, 1000][[1]] /. {0 -> 10}; weights = {0, 2, 4, 5, 7, 9, 11, 12, 14, 16}; melody = {}; For[i = 1, …

5
巻尺ストリング
動機:時には、あなたが文字列のどこにいるかを知る必要があります。文字列の任意の部分を見て、できる限り正確にどこにいるかを知りたいと思うでしょう。 課題:指定された長さの巻尺文字列を出力するプログラムを作成します。巻尺文字列の自己は、その長さはそれほど遠くできるだけ頻繁に、それは自身の長さだ沿って説明します。 ルール: プログラムは、テープメジャー文字列の合計長に対して、1つの正の整数パラメーターを取る必要があります 出力の桁の各連続した文字列の場合は、これらの数字は正確にこれまでの出力の長さを報告しなければなりません- 包括的! 長さは、文字列の先頭から各番号の末尾まで測定されます 文字列にはできるだけ多くの長さの数字を含める必要があります あいまいさを避けてください。セパレータ/デリミタを使用して、数字が並置されるのを防ぐことができます12。 文字列は、末尾のセパレータなしで、常に正確にその全長を報告する必要があります 長さを正確に保つために複数のセパレータが必要になる場合があります。たとえば、長さ4の巻尺文字列の例を次に示します。 1--4 非規範的/網羅的な例: 長さ1の巻尺文字列: 1 長さ2の巻尺 -2 長さ3の巻尺文字列: 1-3 長さ4の巻尺文字列:1--4または-2-4(両方のレポートの長さを可能な限り頻繁に、つまり2回、正しい合計長で終わる) 長さ10の巻尺文字列: 1-3-5-7-10 長さ11の巻尺文字列:1-3-5-7--11or 1-3-5--8-11or 1-3--6-8-11or 1--4-6-8-11or -2-4-6-8-11(すべてできるだけ多くの長さ番号を持ち、文字列の合計の長さで終了します)
15 code-golf  string 

25
次の素数を見つけるプログラム
イントロ: タイムマシンであることが判明した、楽しみのために作成したデバイスで、誤って時間の流れを破損しました。その結果、あなたは遠い未来に押しやられました。コンピューティング、処理能力、およびコンピューター全般が膨大な量、正確には無限の量で進化していることに気づきました。したがって、無限のメモリと処理能力を備えたコンピューターを手に入れることができます。無限のメモリと無限の処理能力を持つ方法がわかりませんが、それを受け入れて現在に戻ります。 チャレンジ: 現在最大の素数を発見した人は 2^74,207,281 − 1 100.000ドルを支払っ。コンピューターに費やしたお金を取り戻したいので、次の素数を見つけるプログラムを作成することにします。数値を入力し、ブルートフォースまたは他の方法で次の素数を見つけるものを作成します。 明確化: 無限のメモリと処理能力を持つ仮想マシンがあります。プログラムを制限してはいけません(例:C#のintはから-2,147,483,648に保存できます)2,147,483,647)、よくあなたのプログラムは、ストア、および任意のサイズの任意の数で動作する必要があります。無限のリソースがあるため、許可した場合にメモリが不足しても気にしないでください。 I / Oの例: 入力:22,338,618桁の現在発見されている素数。 出力:まさに次の素数 明らかに、物理マシンでの計算には膨大な時間がかかるため、動作することを証明する必要はありません。ただし、プログラムを無限の処理能力/メモリを備えた仮想マシンに移動した場合、即座に計算されるはずです。 次の素数を見つけ、数が素数であるかどうかを確認することは、2つのまったく異なることです。
15 code-golf  math  primes 

9
些細なシーケンスのひねり
前書き 次のように定義された整数fのシーケンスを考えます。 f(2)= 2 もしnは奇素数である、そして、 =(N)F(+ F(N-1)F(N + 1))/ 2 もしN = P・Qは、その後、複合体であるF(N)= F(P)・F(Q) n≥2ごとにf(n)= nであることを確認するのはそれほど難しくありません。したがって、fの計算はそれほど興味深い課題ではありません。定義をひねりましょう。最初のケースを半分にし、2番目のケースを2倍にします。次のように定義された新しいシーケンスgを取得します。 g(2)= 1 場合nは奇素数である場合、G(N)= G(N-1)+ G(N + 1) もしN = P・Qが複合され、次いでG(N)= G(P)・G(Q) タスク あなたのタスクは、入力としてn≥2の整数を取り、出力としてg(n)を生成することです。整数オーバーフローを心配する必要はありませんが、計算できるはずです g(1025)= 81正しく、アルゴリズムは任意の大きな入力に対して理論的に機能するはずです。 完全なプログラムまたは関数を作成できます。最も低いバイトカウントが優先されます。 例 上記でg(1025)= 81と主張したので、手で計算してみましょう。素因数分解1025が提供します 1025 = 5*5*41 => g(1025) = g(5)*g(5)*g(41) 41は素数なので、 g(41) = g(40) + g(42) 次に、40と42の素因数分解を計算します。 40 …

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