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

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

9
フラクタル煙シーケンス
前書き A229037には、非常に興味深いプロットがあります(少なくとも最初のいくつかの用語について)。 ある種のフラクタル特性を実際に持っているかもしれないという推測があります。 このシーケンスはどのように構築されますか? a(1) = 1, a(2) = 1次に、各3項インデックスの算術3項シーケンスに対して、シーケンスの対​​応する値が算術シーケンスではないようにn>2、最小の正の整数を見つけるように定義します。a(n)n,n+k,n+2ka(n),a(n+k),a(n+2k) チャレンジ n入力として正の整数を指定すると、このシーケンスの最初のn項a(1), ... , a(n)が出力されます。(合理的な書式設定を使用します。可能な先頭/トレーニング文字/文字列は無関係です。) このシーケンスを生成するためのスニペットが利用可能ですが、他のアプローチは特定の言語により適した/より適していると思います。 あなたのプログラムの仕組みを教えてください。特に効率的なアルゴリズムに出くわした場合は、短い時間でシーケンスのより多くの項をプロットできるようになるため、それについても言及する必要があります。 最初のいくつかのテストケース: 1, 1, 2, 1, 1, 2, 2, 4, 4, 1, 1, 2, 1, 1, 2, 2, 4, 4, 2, 4, 4, 5, 5, 8, 5, 5, 9, 1, 1, 2, 1, 1, …

1
音声認識:「はい」または「いいえ」?
仕事 最大精度のトレーニングサンプルに基づいて、音声サンプルの音声認識を行うソースコードまたはバイナリコードの最小バイト数でプログラムを実装する。 プログラムは読むべきtrain/yes0.wav、train/no0.wav、train/yes1.wavなど(400 yesesと400件のNOEがトレーニングデータセット内にある)、そして読み始めinputs/0.wav、inputs/1.wavそれがファイルを見つけることが失敗するまで、それを分析し、ために「はい」か「いいえ」(または他の単語を出力します中間回答)。 必要に応じて、読み取りの代わりにプログラムを事前にトレーニングすることもできますtrain/が、結果のデータテーブルはスコアにカウントされます(トレーニングサンプルへの過剰適合に注意してください-試験サンプルと重複しません)。この場合、データテーブルを作成するために使用されるプログラムを補遺として含める方が良いでしょう。 すべてのサンプルファイルは、ラップトップマイクからのリトルエンディアン16ビットステレオWAVファイルで、フィルタリング/ノイズリダクションはありません。 制限 禁止されている機能: ネットワークを使用する; 回答ファイルに到達しようとしていますinputs/key。 runner精度を計算するプログラムを破壊します。 既存の認識ライブラリを使用します。FFT実装へのリンクは許可されていません。一定量の情報(sinまたはなどatan2)を取得する外部数学関数のみが許可されています。FFTが必要な場合は、プログラムのソースコードにその実装を追加するだけです(必要に応じて多言語にすることができます)。 リソース制限: i5ラップトップでは、プログラムに30分以上のCPU時間はかかりません。さらに時間がかかる場合は、最初の30分間に生成された出力のみがカウントされ、他のすべては半一致と見なされます。 メモリ制限:1GB(一時ファイルを含む)。 道具 tools/runnerプログラムは自動的にあなたのソリューションを実行し、精度を計算します。 $ tools/runner solutions/example train train/key Accuracy: 548 ‰ トレーニングデータまたは実際の試験データを使用してプログラムを調べることができます。データセットを公開するまで、試験データセットで提出された回答を試し、結果(精度のパーセンテージ)を公開します。 得点 精度に応じて5つのクラスのソリューションがあります。 すべてのサンプルが正しく推測されました:クラス0; 精度950-999:クラス1。 精度835-950:クラス2。 精度720-834:クラス3; 精度615-719:クラス4; 各クラス内のスコアは、ソリューションが使用するバイト数です。 受け入れられた答え:最高の空でないクラスの最小のソリューション。 リンク集 ツールを使用したGithubプロジェクト:https : //github.com/vi/codegolf-jein トレーニングデータセット:http : //vi-server.org/pub/codegolf-jein-train.tar.xz 検査データセットはこれまでプライベートに保たれており、Githubリポジトリで利用可能なチェックサム(HMAC)があります。 すべてのサンプルはCC-0(パブリックドメイン)と見なされ、スクリプトとプログラムはMITと見なされる必要があります。 ソリューション例 認識の品質が非常に低く、ファイルの読み取り方法と回答の出力方法を示しているだけです。 #define _BSD_SOURCE #include <stdio.h> …

12
Jでのゴルフのヒント
GolfScriptはあまりにも頻繁に独自の方法を使用するため、Jでゴルフをするための便利なヒントのリポジトリは、邪悪な帝国との戦いに役立つかもしれないと感じています。この簡潔な言語を短くするためのヒントはありますか? Jを学習したい人にとっては、jsoftwareサイト、特に語彙、Learning Jガイド、J for Cプログラマーガイドから始めてください。
33 code-golf  tips  j 

8
金の鎖を切る
旅行者は町の外のホテルにn日間滞在する必要があります。彼は現金が不足しており、クレジットカードの有効期限が切れています。しかし、彼はnの金の鎖を持っていますリンクます。 このホテルのルールでは、住民は毎朝家賃を支払う必要があります。旅行者は、マネージャーとの間でゴールデンチェーンのリンクを毎日支払うことに同意します。しかし、マネージャーはまた、旅行者が毎日支払いながらチェーンに可能な限り損害を与えないように要求しています。言い換えれば、彼はできるだけ少ないリンクをカットする解決策を考え出さなければなりません。 リンクを切断すると、3つのサブチェーンが作成されます。1つは切断されたリンクのみを含み、もう1つは両側にあります。たとえば、長さ8のチェーンの3番目のリンクを切断すると、長さ[2、1、5]のサブチェーンが作成されます。マネージャーは変更を喜んで行うため、旅行者は長さ1のチェーンで1日目を支払い、次に長さ2のチェーンで2日目を支払い、最初のチェーンを取り戻すことができます。 コードは長さnを入力する必要があります最小長のカットへのリンクのリストを出力する必要があります。 ルール: nは0より大きい整数です。 リンクには0ベースまたは1ベースのインデックスを使用できます。 一部の数値では、ソリューションは一意ではありません。たとえば、n = 15両方[3, 8]と[4, 8]有効な出力です。 リストを返すか、適切な区切り記号を付けて印刷できます。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース: Input Output (1-indexed) 1 [] 3 [1] 7 [3] 15 [3, 8] 149 [6, 17, 38, 79] 詳細な例 以下のためのN = 15、リンク3及び長さのサブチェーンで8つの結果を切断します[2, 1, 4, 1, 7]。これは有効なソリューションです: 1 = 1 2 = 2 3 = 1+2 4 …

11
誰が選挙に勝ちますか?
これは、1人と2人の2人が出勤するという課題です。1と2の世界では、人々は特定の方法で決定論的に投票するため、候補者は選挙前に結果を把握できます。 注:これは、外部の選挙やその他の政治的出来事を指すものではありません。 2人がオフィスに走っています。これらの人々を1と2と呼びます。どちらも選挙に勝つかどうかを知りたがっているので、彼らは人々の知識といくつかのコードを使用して結果がどうなるかを判断します。政府の支出を最小限に抑えるため、コードはできるだけ短くする必要があります。 あなたの仕事:投票方法に基づいて一連の人々を与え、選挙で勝った人を出力します。 1と2の楽しくてエキサイティングな世界には5種類の人々がいます。 A:1に間違いなく投票する人 B:間違いなく2に投票する人。 X:左の人が投票する人に投票する人。左に人がいない場合は、右の人が投票する人に投票します。自分の権利のある人が誰に投票しているかが明確でない場合、彼らは投票しません。 Y:人々は左の人の反対に投票します。左側に人がいない場合は、右側にいる人の反対に投票します。自分の権利のある人が誰に投票しているかが明確でない場合、彼らは投票しません。 N:投票しない人。 これは左から右に評価されます。 例: 明確にするために、「評価」されている人はすべて小文字です。 Input: `XXAYAN` xX Votes for whoever their friend is voting for. Their friend has not decided yet, so it is unclear, so they do not vote. Xx Person to left is voting "none" so votes "none." a …

6
1、2、3、14…または15ですか?
アイルランドのロックバンドU2の有名な歌は、歌手ボノがスペイン語で「1、2、3、14」(「uno、dos、tres、catorce」)と言うことから始まります。 これらの数字の重要性については、さまざまな 理論があります。どうやら公式説明は「あの夜、私たちは飲みすぎた」ということです。しかし、もっと興味深い仮説があります:Bonoは、OEISからの整数シーケンスを参照しています。 A107083: 素数であるkような整数10^k + 31。 1、2、3、14、18、44、54、... インタビューで、避けられない質問「なぜ14」を尋ねられたとき、ボノは彼がその数字に少し疲れていることを認めました。ジャーナリストは代わりに「15」を提案し、その夜のコンサートで歌詞は実際「1、2、3、15」に変更されました。(物語はスペイン語でここで読むことができます)。おそらくジャーナリストはインスピレーションを受けました A221860: インデックスkかかるprime(k) - kの電力で2、prime(k)あるk番目の素数。 1、2、3、15、39、2119、4189897、... チャレンジ 同じ言語で2つのプログラムを作成します。最初は入力nを取り、A107083のn-th項、または最初の項を出力する必要があります。同様に、2 番目はA221860の-th項、または最初の項を出力する必要があります。nnn スコアがある合計の長さをバイト単位で二つのプログラムの、プラス正方形のレーベンシュタイン距離二つのプログラムのバイト表現の間。 各文字が1バイトに対応するように文字エンコードが使用される場合、このスクリプトを使用してレーベンシュタイン距離を測定できます。 たとえば、2つのプログラムがabcdefghとのbcdEEfg場合、スコアは8 + 7 + 4^2 = 31です。 最低スコアが勝ちます。 追加規則 出力は、シーケンスごとに独立して1-basedまたは0-basedにすることができます(したがって、プログラムの一方が1-basedで、もう一方が0-basedの場合に許可されます)。 各プログラムは、一貫して、しかし互いに独立して、n-th項または最初のn項を出力できます。 プログラムまたは機能は、各シーケンスに独立して許可されます。 入出力手段と形式は、通常どおり柔軟です。標準的な抜け穴は禁止されています。

23
配電盤のブルートフォース
先日、私たちのチームは脱出室に行きました。パズルの1つには、6つの機械式スイッチのボードが含まれており、ボックスのロックを解除するには、次のような正しいオンとオフの組み合わせを見つける必要がありました。 -v-v-v- -v-v-v- 開発者である私たちは、実際にパズルを解くよりも2 ^ 6 = 64の組み合わせを1つずつ試す方が効率的だと判断しました。そこで、貧しい人にバイナリカウントを割り当てました。 -v-v-v- -v-v-v- -v-v-v- -v-v-^- -v-v-v- -v-^-v- -v-v-v- -v-^-^- 等々。 課題は 、上記のようにフォーマットされた文字列として位置オフのスイッチ全てが与えられると、そのプログラムを書いて、任意の順序でオンとオフのすべての組み合わせを生成します。 完全なプログラムまたは関数のいずれかを作成できます。したがって、プログラムは、stdin、ファイルを介して、または単一の文字列引数として入力を受け取り、出力を返すか印刷することができます。返される場合、出力はlist / array / etcにある可能性があります。単一の文字列ではなく。出力が単一の文字列の場合、ボードは改行で区切る必要があります(末尾の改行は許可されます)。 入力文字列は正規表現r'((-v)+-)(\n(-v)+-)*'と一致し、すべてのスイッチがオフになっている1つのボードを表します。これは、ゼロケースがないことを意味し、スイッチは左揃えです。各行には同じ数のスイッチがない場合があります。 各出力ボードは、入力とまったく同じ形式である必要がありますが、必要に応じてvを^に置き換えることができます。出力ボードは、任意の数の改行で区切ることができます。 ランタイムは当然、スイッチの数がO(2 ^ n)であるため、コードはどのような配置でも10を超えるスイッチではテストされません。 これはコードゴルフなので、バイト数の最も短いコードが優先されます。 サンプルの入力と出力 入力: -v- 可能な出力: -v- -^- 入力: -v- -v- 可能な出力: -^- -^- -^- -v- -v- -^- -v- -v- 多数のスイッチについて回答を確認するのは非常に面倒なので、ここでは健全性チェックツールとしてのPythonスクリプトを示します。(テストケースをさらに増やしたい場合に備えて、特定の入力ファイルから期待される出力を生成するために、現在コメントアウトされたスニペットを含めました。)入力文字列を「input」という名前のファイルに入れ、改行で区切られた出力(申し訳ありませんが、リストのフォーマットはありません)は同じディレクトリの「output」という名前のファイルに入れて実行しpython3 sanitycheck.pyます。

9
月の対称性
前書き いくつかの月は完全に対称です。つまり、次のように、中心対称性と反射対称性がありFebruary of 2010ます。 February 2010 ┌──┬──┬──┬──┬──┬──┬──┐ │ │ │ │ │ │ │ │ ├──┼──┼──┼──┼──┼──┼──┤ │ │ │ │ │ │ │ │ ├──┼──┼──┼──┼──┼──┼──┤ │ │ │ │ │ │ │ │ ├──┼──┼──┼──┼──┼──┼──┤ │ │ │ │ │ │ │ │ └──┴──┴──┴──┴──┴──┴──┘ 一部の月には、次のような、または今月の中心対称性のみがFebruary of 1996ありApril of 2018ます。 February 1996 …
32 code-golf  date 

12
プレサノールトマンテウス
かばんの単語は、各単語の一部を取り、単一の新しい単語にそれらを作る二つの単語を組み合わせたものです。たとえば、lion + tiger => ligerです。 1組の入力語からportmanteausを生成するプログラムを作成しましょう。コンピューターは英語が上手ではないので、出力のマントマンが目と耳に心地よいものになるように、いくつかのルールを確立する必要があります。 (ここでの例は、わかりやすくするために接頭辞と接尾辞の間に区切り文字を付けて示していますli|ger。ただし、プログラムの実際の出力には区切り文字を使用しないでくださいliger。) 各portmanteauは、2番目の単語の空でない接尾辞に連結された最初の単語の空でない接頭辞で構成されます:yes to li|ger、no to |iger。 接頭辞が母音で終わる場合、接尾辞は子音で始まる必要があり、その逆も同様です:yes to lio|gerまたはl|erno to lio|igeror l|ger。母音と子音のどちらとして数えるかを決めることができyます。ただし、ソリューションでは1つのオプションを選択し、それに従う必要があります。 結果の単語には、元の単語のいずれか(yes to lio|ger、no to、lion|igerまたは)を完全に含めることはできませんli|tiger。 このルールは、問題の部分が両方の単語の一部で構成されている場合でも成立します。入力がtwo+のwords場合、出力にtw|ordsはsubstringが含まれているため、出力は依然として不正wordsです。(このペアの有効な出力はのみですt|ords。) プログラムまたは関数は2つの単語を取り、それらの単語からその順序で形成できるすべての快適な門脈のリストを出力または返す必要があります。 詳細 標準の入出力方法が適用されます。標準的な抜け穴は禁止されています。 単語は小文字のみで構成されます(または、必要に応じて大文字のみで構成されます)。 2つの入力語をリスト、タプル、2つの個別の入力、非文字区切り文字付きの単一の文字列などとして使用できます。 出力形式も同様に柔軟です。文字列を返すか出力する場合は、あるportmanteauの単語がどこで終わり、次の単語が始まるかが明確になるように区切る必要があります。 ポルトマントー語の中に区切り文字はありません。 出力リストに重複した結果が含まれていても問題ありません。重複を削除してもかまいません。 テストケース > lion, tiger < liger, ler, liger, lir, lioger, lior > tiger, lion < tion, ton, tin, tigion, …

11
固定合計の乱数
タスクは、間隔[0,1]から乱数を固定合計で出力するプログラムまたは関数を作成することです。 ns 入力 n, n≥1、生成する乱数の数 s, s>=0, s<=n、生成される数値の合計 出力 区間[0,1]のすべての要素とに等しいすべての要素の合計を持つランダムなnタプルの浮動小数点数は、便利な明確な方法で出力されます。すべての有効なタプルは、浮動小数点数の制限内に等しくある必要があります。sn これは、- n次元の単位立方体とベクトルをn-1通り抜ける(s/n, s/n, …, s/n)- 次元の超平面内の点の交点から均一にサンプリングすることに等しい(1, 1, …, 1)(3つの例については、図1の赤い領域を参照)。 図1:n = 3、合計0.75、1.75および2.75の有効な出力のプレーン 例 n=1, s=0.8 → [0.8] n=3, s=3.0 → [1.0, 1.0, 1.0] n=2, s=0.0 → [0.0, 0.0] n=4, s=2.0 → [0.2509075946818119, 0.14887693388076845, 0.9449661625992032, 0.6552493088382167] n=10, s=9.999999999999 → [0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999] ルール …
32 code-golf  random 


5
左手と右手—タイピストの挑戦
あなたの仕事は、キーボードの両側を相互に突き合わせ、同じ言語で2つのプログラムを作成することです。1つは標準キーボードの左側のキーのみを使用し、もう1つは標準キーボードの出力Pollinium milk; plump pumpkin; lollipop?を使用しますWeatherheaded sweetheart haberdasheress!。 ルール 左側のプログラムに許可される正確なキーは次のとおりです。 123456!@#$%^QWERTYqwertyasdfghASDFGH`zxcvb~ZXCVB 右側のプログラムの場合: 7890-=&*()_+uiop[]UIOP{}jkl;'\JKL:"|nm,./NM<>? 4つの無料のキーEsc(\x1b)、Tab(\x09)、Space(\x20)、およびEnter(\x0aおよび/または\x0d)があり、どちらか、両方、または両方のソリューションで使用できます。 スコアは、両方のプログラムの合計バイト数になります。という用語を使用しましたがprogram、提出物は完全なプログラムまたは通常の機能のいずれかであり、両方とも異なるタイプ(たとえば、1つの完全なプログラムと1つの機能)になります。 結果には目的のテキストが含まれている必要があります。その中に正確なテキストが表示されている限り、任意の量の先頭および末尾の空白でかまいません。 標準的な抜け穴は禁止されています。 各言語で最短のソリューションが勝ちます。

30
等しい、合計、または差!
与えられた2つの整数値が等しいか、それらの和または絶対差が5である場合にtrueを返す最短のコードを記述します。 テストケースの例: 4 1 => True 10 10 => True 1 3 => False 6 2 => False 1 6 => True -256 -251 => True 6 1 => True -5 5 => False 私がpython2で思いつくことができる最短は56文字の長さです: x=input();y=input();print all([x-y,x+y-5,abs(x-y)-5])<1 -9、@ ElPedroに感謝します。x、yの形式で入力を受け取ります。 x,y=input();print all([x-y,x+y-5,abs(x-y)-5])<1

30
カードのデッキを生成する
これは、2枚のジョーカーを含む標準的なカードのデッキを表す配列です。 [ "AS", "2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "10S", "JS", "QS", "KS", "AD", "2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "10D", "JD", "QD", "KD", "AH", "2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "10H", "JH", "QH", "KH", "AC", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", …

21
Nについての注意!
JE Maxfieldは定理に従って証明しました(DOI:10.2307 / 2688966を参照): 場合AAA有する整数任意の正であるmmm数字は、正の整数が存在するNNNそのような第一そのmmmの数字N!N!N!整数を構成しますAAAます。 チャレンジ あなたのチャレンジは、いくつか与えられているA⩾1A⩾1A \geqslant 1対応する見つけるN⩾1N⩾1N \geqslant 1。 詳細 N!N!N!階乗N!=1⋅2⋅3⋅…⋅NN!=1⋅2⋅3⋅…⋅NN! = 1\cdot 2 \cdot 3\cdot \ldots \cdot N表します!= 1 ⋅ 2 ⋅ 3 ⋅ ... ⋅ NのNNN。 この場合のAAAの数字は、101010を基数とするものと理解されています。 提出は任意のAで機能するはずですA⩾1A⩾1A\geqslant 1十分な時間とメモリ与えられました。例えば32ビット型を使用して整数を表すだけでは十分ではありません。 あなたは、必ずしも出力する必要はありません少なくとも可能NNN。 例 A N 1 1 2 2 3 9 4 8 5 7 6 3 7 …

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