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

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

15
最初のx個のプライムの中の加算プライム
加法素数の定義: ちょうど2つの除数が呼び出されている番号プライム番号。 素数でその桁数も素数である数は、加法素数と呼ばれます 仕事: 整数を与えx、最初の中のすべての添加の素数を計算するxと、素数2最初の素数と添加素数の両方とみなされています。数値は基数10で表されます。 ルール: 出力は、最初のx素数の中のすべての加法素数で構成されます 0 < x < 151、この課題のために、機能的な目的のために 加法素数はすべて整数であるため、小数は許可されず(例:2ではなく、出力2.0する必要があります)、小数として表示してはなりません。 例: 10 -> 2 3 5 7 11 23 29 説明: 最初の10個の素数は2 3 5 7 11 13 17 19 23 29であり2 3 5 7 11 23 29、それぞれの桁数の素数のみを持ち、それぞれ2,3,5,7,2,5,11であるため、加法素数です。 の説明に従ってexample 1、他のテストケースは次のようになります。 2 -> 2 3 25 -> 2 3 …

2
チャレンジでランダム生成を指定する方法
注:Metaのコンセンサスに従って、チャレンジライティングの質問はここでトピックになります。 この「課題を書くときに避けるべきこと」に照らして、私は特定の種類のオブジェクトのランダムな生成を伴う課題について考え始めました。 時々、fooをランダムに生成するコードゴルフチャレンジを投稿したいことがあります。 指定されたものがfooであるかどうかを確認するのは非常に簡単です。 「良質の」ランダムfooをすばやく生成するのは少し難しくなります。 例として、fooは、どの方向にも4つの等しいビットのセグメントがないバイナリマトリックスである場合があります。与えられたバイナリ行列がfooであるかどうかを確認するのは簡単ですが、うまく分散した分布でランダムなfooを生成するには、バックトラッキングアルゴリズムなどが必要なようです。 とにかく、ランダムなfooとして適格なものを客観的に指定する必要があります。プログラムを数回実行すると、結果が常に異なって見えるという直感的な意味で「予測不能」になりたいです。最も制限的なアプローチは、出力が一様にランダムであることを要求することです。すべての有効なfooが同じ確率で生成されます。これは通常、制限が厳しすぎます。有効なfooをすべて生成し、重複を削除して、退屈で遅いものを選択するために保存する方法がわからないからです。 私の次のアイデアは、すべての有効なfooが生成される肯定的な確率を持つことを要求することです。ただし、これは次のアプローチが有効であることを意味します:fooの場合はランダムなfooのようなもの(この例ではランダムなバイナリマトリックス)を生成し、それを返す場合はハードコードされたfooを返します)。また、これは基本的にランダムマトリックスジェネレーターに付けられたfoosの単なる認識器であるため、やや退屈です。 予測不可能なランダムなfooの一般的な定義はありますか? TL; DR 「予測不可能な」ランダムに生成されたオブジェクトを指定するための良い方法はありますか?

1
ノスタルジックな素数ジェネレーター[終了]
閉じた。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 閉じた3年前。 単純なドキュメントまたはWebページを開くと、コンピューターにあるすべての貧弱なリソースを食い尽くしていたため、非常に遅いという古き良き時代を覚えていますか?そして、今日、プロセッサが数百倍高速であり、数千倍のメモリにアクセスしているにもかかわらず、同じことをするのはさらに遅くなりますか? 現在のドキュメントビューアーおよび同様のアプリケーションでの肥大化の影響をシミュレートするには、より強力なマシンで実行したときに目に見えるパフォーマンスの問題があるプログラムを作成します。 すべての人に共通のタスクを持たせるには、それを素数ジェネレータにします。 このプログラムは、2から始まる新しい素数の連続する素数を印刷しなければなりません。これは永久に(またはメモリ不足になるまで)する必要があります。このような: 2 3 5 7 11 13 17 各行の印刷には、人間が認識できる程度の遅延が必要です。 この遅延は、プログラムが実行されているマシンが高速になるほど長くなります。マシンが速いほど、プログラムは遅くなります。 主観的になる可能性があるため、正確なベンチマークを指定しませんが、2台のマシンのパフォーマンスに大きな違いがある場合、2台の異なるマシンで人間が知覚できる速度の違いがあるはずです。 プログラムの速度は、これまでに作成されたすべての既存のマシンで単調に減少する必要はありません。これは特定するのが難しく、検証するのはさらに困難です。マシン間で大幅に異なるパフォーマンスと見なすことができるものについて、出場者の常識を信じており、それで十分です。 また、正確な上限または下限を指定しませんが、妥当な制限内である必要がありますので、2行を印刷する間で日数または年数を指定しないでください。 Eniacから現代までのすべてで実行する必要はありませんが、たとえば2つの特定のCPUタイプでのみ動作し、特定の1つのCPUの名前を具体的に検出することは許可されません低速または高速で実行されます。 コードはコンパイラーまたはインタープリターのバージョンに依存するべきではありません。同じバージョンのコンパイラ/インタープリターが低速マシンと高速マシンの両方にインストールされている場合、またはバイナリ/バイトコードが1台のマシンでコンパイルされてから2台の異なるマシンで実行されている場合でも動作します。 プログラムの動作原理を説明してください。結果を再現するのは難しいため、回答の有効性はメソッドの実行可能性に依存する場合があります。 残念ながらこのサイトは「プログラミングパズルとコードゴルフ」ではなく、単に「コードゴルフ」に過ぎないため、最も短いコードが勝ちます。

7
ワン1、ツー1、ワン2ワン1
チャレンジ: 正の非ゼロ整数の入力を受け取り、以下に説明する順序で次の4つの数値を出力するプログラムを作成します。 注:入力が実際にゼロ以外の正の整数であるかどうかを確認する必要はありません シーケンス: このシーケンスのすべての数値(入力である最初の数値を除く)は、n桁で構成されます(nは偶数)。番号をn / 2ペアに分割する場合、ペアごとに、最初の数字は前の数字に2番目の数字が現れた回数でなければなりません 視覚的な説明: この例「シーケンススターター」または入力を検討してください。 入力には1 "6"、1 "5"および2 "7"があるため、6577 シーケンスの次の番号は次のように161527なります。 入力の桁数が多すぎる場合(1桁で9桁以上)、正しい出力を取得することはできません。 例:111111111111(12 1's) 次の番号は、12 1を記述する必要があります。したがって、それを9個の1と3個の1に分割します(合計9 + 3 = 12) 次の数:9131 入力を4回繰り返して出力する必要があります(4つの整数のリスト/配列を返すか、スペースで区切って出力します。改行も使用できます)。 「数字はいろいろな方法で書くことができますが、どうやって書くのですか?」: 考えてみると、入力例6577は271516(2つの7、1つの5、1つの6)と書くこともできます。ただし、これは無効な出力です。数値を左から右に繰り返す必要があります。したがって、161527。7の7657量、6の量、5の量を反復する場合、有効な出力は次のようになります。271615 I / Oの例: 入力:75 出力:1715 211715 12311715 4112131715 入力:1 出力:11 21 1211 3112 入力:111111111111(12 1's) 出力:9131 192113 31191213 23411912 :シーケンスが異なっているので、これは、質問「あなたが見る何を言う」とは違ってhttps://oeis.org/A005150: -このようなこの1つのリターン番号< 入力:1211出力:111221 シーケンスは、私が求めているもののどうなる …

20
x ^ 2が7 ^ x-1を除算するような数値x
仕事 分割するxような数のセットがあります。x^27^x-1 あなたの仕事はこれらの数字を見つけることです。nを入力すると、コードはこの規則に従うn番目の数字を出力します。 例1-インデックス In Out 3 3 9 24 31 1140 関連するシーケンスはここで見つけることができます。 ルール 最短回答が勝者となります* 標準的なゴルフ規則が適用されます 抜け穴は許可されていません あなたの答えは、0または1のいずれかのインデックスになります。答えに明記してください

9
タワーブロックを印刷してください
可能な限り短いコードでタワーブロックを印刷します。 入力: 入力は、タワーブロックの階数を定義します。1階には、ドアの両側に窓があります。ウィンドウは3x3ハッシュで構成されています。 4階建てのタワーブロックの例を以下に示します。 ===================== )V V V V V V V V V V( )V V V V V V V V V V V( )V V V V V V V V V V V V( )V V V V V V V V V V V V …

9
2017年まで成長
この課題では、年齢を経るにつれて成長するプログラムを構築します。2017年までです。 チャレンジ このチャレンジの説明に「プログラム」と記載されている場合は、「機能」も読むことができます。 送信すると、実行すると、THE LENGTH OF YOUR SUBMISSION+ 1バイト長のプログラムが出力されます。 ときにそのプログラムが実行され、それが出力され、プログラムされますTHE LENGTH OF YOUR SUBMISSION+は2バイトの長...というように。 ただし、プログラムが2017バイトの長さに達すると、代わりに出力2017して終了する必要があります。 ルール 最終プログラムの出力は2017唯一でなければなりません2017。これは、文字列または整数を指定できますが、それは読まなければなら2017ない2017.0か、0x7E1または他のそのようなナンセンス。 標準的な抜け穴はありません。 初期プログラムのみが入力を要求することが許可されており、これはバイトカウントに追加されます。したがって、最初のプログラムの長さが324文字で入力が13バイトの場合、合計スコアは 324 + 13 = 337に なり、出力されるプログラムの長さは 338バイトでなければなりません。 perl -Xただし、初期プログラムと生成されたすべてのプログラムが同じフラグを使用している限り、コマンドラインフラグ(例:)を使用しても問題ありません。また、それらも合計バイト数にカウントされます。コマンドラインフラグの前にあるダッシュ、スラッシュなどは合計にperl -Xはカウントされないため、たとえば1バイト追加されます。 関数を返す場合、評価時に関数を生成する文字列ではなく、実際の関数である必要があります。 不適切なクイン(プログラムがクインの場合)は許可されません。 例 擬似コード、99バイト IF (PROGRAM LENGTH == 2017) PRINT 2017 ELSE PRINT (THE SOURCE OF THIS PROGRAM + 1 BYTE …

25
友達に「コンマクラブ」を教えてください
このようなシリコンバレーの「3コンマクラブ」シーンに触発され、このチャレンジでは10人にそれぞれが属する「コンマクラブ」を伝えます。 「コンマクラブ」という用語に慣れていない場合は、説明しましょう。持っているお金が1,000.00ドルから999,999.99ドルの範囲であれば、1コンマクラブにいます。$ 1,000,000.00から$ 999,999,999.99の範囲にある場合、2コンマクラブにいます。地球上の個人(AFAIK)は1兆ドル以上を所有していないため、これらの「クラブ」は3コンマクラブを通じて繰り返されます(日本円はすぐに別の話になります)。したがって、銀行口座のカンマの数は、米国および英国で最も一般的な表記基準に従って、あなたが所属するカンマクラブを示します。同じ「コンマ」ルールが負の数値にも適用されます(ただし、負のコンマクラブにはなりたくないでしょう)。包括範囲[-0.01、-999の負の量。 テストケース Friend Amount John 100000 Jamie 0.05 Kylie 1549001.10 Laura 999999999.99 Russ 986000000 Karla 1 Reid 99.99 Mark 999.99 Manson 1000.01 Lonnie 999999999999.00 Nelly -123.45 正しい答え: John is in the 1-comma club. Jamie is in the 0-comma club. Kylie is in the 2-comma club. Laura is …
16 code-golf 

15
隠された反転(強盗のスレッド)
これは警官と強盗のパズルです。警官のスレッドはここにあります。 あなたの仕事は、左の逆を実行する警官のスレッドで提供されたプログラムのアナグラムを見つけることです。 回答をクラックしたら、ソリューションを以下の回答として投稿し、元の回答者に通知してください。 あなたが最初にクラックしたプログラムの数で得点されます。

6
ペンパイナップルアップルペン…自分のペン、パイナップル、リンゴを使って
前奏曲: この課題は、「別の猫プログラム」とは異なります。 文字通りさまざまなひねりがありますが、なぜ私は自分の人々を持てないのですか? ユニークなもの: 出力への直接入力を読み取っていません。 それは確かにまっすぐな猫ではない方法で文字列を操作しています。 チャレンジ: 3つの入力(または1つの入力、好きなように区切られた入力)が与えられると、歌詞と出力でペン、パイナップル、リンゴを置き換える3つのオブジェクト(単語)を取得します。 出力形式(AZLyricsで見つかった歌詞による): 仮定(これらの値を角括弧で置き換えます): A、B、C、入力語(例: apple) 大文字の最初の文字が入力されたUA、UB、UC(まだ大文字でない場合)(ex。 Apple) FUA、FUB、FUC、それぞれ最初の大文字:(ex。 A) a / an最初の文字の母音/子音に対応する記事(例an) [FUA]-[FUB]-[FUC]-[FUA] [a / an] [A]、[a / an] [C]があります。 えっ![UC]-[UA]! [a / an] [A]、[a / an] [B]があります。 えっ![UB]-[UA]! [UC]-[UA]、[UB]-[UA]。 えっ![UA]-[UB]-[UC]-[UA]。 [UA]-[UB]-[UC]-[UA]! テストケース: 使用したテストpen、pineappleおよびapple: P-P-A-P I have a pen, I have an apple. …
16 code-golf  string 

10
投票用紙を印刷してください!
ご存知の通り、今日は選挙の日です! 今日のあなたの仕事は、入力を与えられた投票用紙を印刷することです。 入力がの場合Hillary Clinton、印刷: Hillary Clinton ===-----===> Donald Trump === ===> ____________ === ===> ただし、入力がの場合Donald Trump、印刷: Hillary Clinton === ===> Donald Trump ===-----===> ____________ === ===> それが何か別のものである場合、3行目に記述します。 Hillary Clinton === ===> Donald Trump === ===> Oliver Ni ===-----===> (技術的には、私はまだ18歳ではありません...) これはcode-golfであるため、バイト数が最も少ないコードが優先されることに注意してください。

13
変動価格収入!
紹介とクレジット あなたがバーテンダーだと仮定します。ほとんどの場合、バーには多くの幸せな人がいますが、多くの人は同じ飲み物を飲むだけで、あなたの好みには少なすぎて、それを変えたいと思っています。そこで、すでに販売された数に応じて飲み物の価格が可変であるシステムを導入しますが、特定のしきい値を超えることはありません。何らかの奇妙な理由で、販売されたすべての飲み物と価格の適切な追跡を常に忘れているため、消費された飲み物の量を計算するための短い(=記憶に残る)コードを考える必要があります。 この課題は、2012年に大学の関数型プログラミングコースで行われた中間試験にすでに現れており、教授にここに投稿しても大丈夫です。試験の言語でのソリューション例が提供されています。 入力 入力は、スペースを含まない文字列のリストになります-これらは販売された飲み物の名前です。一般的に受け入れられている好みの入力方法を使用して入力を行います。 出力 あなたの出力は単一の数字になります-これは今晩あなたが生み出した収入です。一般的に受け入れられている好みの出力方法を使用して出力を行います。 何をすべきか? これは各飲み物に個別に適用されます: 開始価格は10です。 飲み物を購入するたびに、次の購入者の価格が1ずつ上がります。 最高価格は50です。飲み物が50で購入された場合、新しい価格は再び10になります。 あなたの仕事は、上記のルールが与えられた飲み物の入力リストによって生成された全体的な収入を見つけることです。 あなたが疑問に思っている場合:「50ドルは飲み物には本当に高価です!」、これは50デシのバックなので、50 * 0.1 *単位ですが、言語を除外しないために10-50に行くことを選択しました浮動小数点演算。 誰が勝ちますか? これはcode-golfなので、バイト単位の最短コードが勝ちです!標準ルールが適用されます。 潜在的なコーナーケース 入力リストが空の場合、出力は0になります。 。入力リストは、飲み物でソートされるとは想定できません。 例 [] -> 0 ["A"] -> 10 ["A","B"] -> 20 ["A","A","B"] -> 31 ["A","B","A"] -> 31 ["A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A"] -> 1240 ["A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","B","B","B","C","C","D"] -> 1304 ["D","A","A","C","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","B","B","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","B","C"] -> 1304 ["A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","B","B","B","C","C","D","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A"] -> 1304
16 code-golf  math 

1
Starryでのゴルフのヒント
Starryでゴルフをするための一般的なヒントは何ですか?私は、コードゴルフの問題に適用でき、少なくともある程度Starryに固有のアイデアを探しています(たとえば、「コメントの削除」は答えではありません)。 回答ごとに1つのヒントを投稿してください。
16 code-golf  tips  starry 

3
完全に可逆な部分行列
(数学に関するこの質問に触発された) 定義 与えられたn x n正方行列A、我々はそれを呼び出すことができますinvertibleいくつか存在する場合はn x n、正方行列BとなるようにAB = BA = I NとI nは大きさの単位行列であることn x n(主対角の行列1sおよび何か他のもの0)、およびABそして、通常の行列乗算を表すBA(ここでは説明しません-線形代数クラスを取ります)。 それから、我々は呼び出すことができますm x n行列Cを totally invertible、すべての場合k x kの部分行列(以下に定義)Cはすべてのために可逆でk > 1、k <= (smaller of m,n)。 サブマトリックスは、元のマトリックスから任意の数の行や列を削除した結果のマトリックスとして定義されます。たとえば、次の3x3行列Cは、次のように最初の行と中央の列を削除することにより、2x2部分行列C 'に変換できます。1 2 32 5 8 C = [[1 2 3] [4 5 6] --> C' = [[4 6] [7 8 9]] …

10
長さnのすべてのブレース文字列を生成する
*()[]中括弧は、中括弧が正しく一致する文字で構成される文字列として定義されます。 [brace-string] ::= [unit] || [unit] [brace-string] [unit] ::= "" || "*" || "(" [brace-string] ")" || "[" [brace-string] "]" これは有効なブレース文字列です。 ((())***[]**)****[(())*]* しかし、これらはそうではありません: )( **(**[*](**) **([*)]** あなたの仕事は、正の整数を与えられ、n入力として数値を取り、長さのすべての有効な中括弧文字列を出力する(または返す)プログラム(または関数)を書くことですn。 仕様書 文字列は任意の順序で出力できます。 リストまたは異なる文字で区切られた文字列として出力できます。 プログラムは0を正しく処理する必要があります。長さ0のブレース文字列が1つありますが、これは空の文字列""です。 これはcode-golfであるため、バイト単位で測定された最短の有効な回答が勝ちます。 テストケース 0. 1. * 2. ** () [] 3. *** ()* []* (*) [*] *() *[] 4. **** …

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