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

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

8
あなたの疲れた、あなたの貧しい人々、自由に呼吸したいあなたの群がった大衆をください
ブロンズプラークの台座にある自由の女神は詩「が表示さ新しい巨像をエマラザロ、読み込みの一部で」: あなたの疲れた、あなたの貧しい人々、 自由に呼吸したいと願っているあなたの群がった大衆 、あなたの満ちている海岸の惨めなゴミをください。 ホームレス、テンペストトースト、これらを私に送ってください、 私は金色のドアの横にランプを持ち上げます! このチャレンジの詩のこのセクションを簡素化するために/、カンマやその他の句読点をそのままにして、すべて大文字にして改行をスラッシュ()に置き換えます。 GIVE ME YOUR TIRED, YOUR POOR,/YOUR HUDDLED MASSES YEARNING TO BREATHE FREE,/THE WRETCHED REFUSE OF YOUR TEEMING SHORE./SEND THESE, THE HOMELESS, TEMPEST-TOST TO ME,/I LIFT MY LAMP BESIDE THE GOLDEN DOOR! この文字列をSと呼びます。md5hashを 持っています8c66bbb9684f591c34751661ce9b5cea。オプションで、末尾に改行があると想定できます0928ff6581bc207d0938b193321f16e6。この場合、md5ハッシュはです。 単一の文字列を取り込むプログラムまたは関数を作成します。文字列がSの場合、1行に1つずつ順番に出力され、詩が描く自由の女神が求める人々のタイプを説明する6つのフレーズ: TIRED POOR HUDDLED MASSES YEARNING TO BREATHE FREE WRETCHED …

30
私をもう少しにしてください!
もっと私を作ってください!幅、グラハムクラッカーの量、チョコレートの量、マシュマロの量を教えてください。例: 入力: 幅:10 グラハム:3 チョコレート:2 マシュマロ:1。 出力: GGGGGGGGGG GGGGGGGGGG GGGGGGGGGG CCCCCCCCCC CCCCCCCCCC MMMMMMMMMM GGGGGGGGGG GGGGGGGGGG GGGGGGGGGG それは簡単なこと?ええと...はい。 入力は、文字列ではなく、関数またはプログラムの引数のリストである必要があることに注意してください。最初にWidthを選択し、次にGrahamを選択できますが、順序は任意です。 興味がある場合は、完全なテストケース。 スタックスニペット(テスト用など) これは、出力をテストするためです。 var smore = function(width, graham, chocolate, marshmallow){ return ("G".repeat(width) + "\n").repeat(graham) + ("C".repeat(width) + "\n").repeat(chocolate) + ("M".repeat(width) + "\n").repeat(marshmallow) + ("G".repeat(width) + "\n").repeat(graham); }; Snippetify(smore); <script src="https://programmer5000.com/snippetify.min.js"></script> Width: <input …

12
アナグラムの要因
QIの最近のエピソードでは、142857の最初の5倍数が元の数のアナグラムとして説明されました。もちろん、その数について十分な知識を持っている人は、アナグラムだけでなく、それらの数が実際に周期的であることを知っています。しかし、それは私に考えさせられました。 それ自体のアナグラムである適切なファクターを持つ6桁以下の数字をすべて出力するプログラムまたは関数を作成してください。リストは次の番号で始まる必要があります。 3105 (divisible by 1035) 7128 (divisible by 1782) 7425 (divisible by 2475) 8316 (divisible by 1386) 8712 (divisible by 2178) 9513 (divisible by 1359) 9801 (divisible by 1089) 必要に応じて、アナグラムが適切な要因である数字を見つけることができますが、アナグラムから先行ゼロを除外するように注意してください。 これはコードゴルフであるため、標準の抜け穴を壊さないバイト単位の最短コードが優先されます。

9
そこにいるか、正方形に!
誰もが「そこにいる、または正方形になる」というフレーズを聞いたことがある。だから私はそれについての挑戦の時だと思った。 入力 STDINまたは同等のものを介した入力として、完全な絶対ディレクトリアドレスをテキストとして受け取ります。 出力 ディレクトリアドレスが存在し、有効な場合、プログラムはコンピューター上のそのフォルダーに移動します。そうでない場合、STDOUTまたは同等の次の正方形を介して出力されます。 +-+ | | +-+ 必要条件 標準の抜け穴は許可されていません。 やむを得ない場合は、単一の末尾の改行を出力できます。 プログラムは、移動された場合、出力を生成してはなりません。 プログラムは、移動先に関係なく、再び実行できる必要があります。 仮定 入力が空になることはないと想定できます。 ディレクトリの最後にファイル名が追加されていないと想定できます。 入力ディレクトリは決して現在のものではないと想定するかもしれません。 どこにでも書き込みおよび実行する権限があると仮定できます。 これはcode-golfであるため、バイト単位の最短回答が優先されます。

1
正規表現の多言語を作成する
少なくとも2つの正規表現フレーバー(またはバージョン)で動作する正規表現を作成し、実行中の各フレーバー(またはバージョン)の異なる文字列と一致させます。 このチャレンジで一致する文字列は、Ubuntuコード名の最初の単語で、以下にリストされています。正規表現はリストの先頭から一致する必要があります。つまり、正規表現が3つのフレーバーで動作する場合、他の正規表現ではなく、と一致する必要がWarty HoaryありBreezyます。 Warty Hoary Breezy Dapper Edgy Feisty Gutsy Hardy Intrepid Jaunty Karmic Lucid Maverick Natty Oneiric Precise Quantal Raring Saucy Trusty Utopic Vivid Wily Xenial Yakkety Zesty 17.10 18.04 18.10 19.04 19.10 ... 正規表現が26を超えるフレーバーで機能する場合は、代わりにUbuntuのバージョン番号を一致させることができます。17.10以降、新しいフレーバーごとに、2番目の数値が04の場合は2番目の数値を10に変更し、最初の数値を増分してそれ以外の場合は2番目の数値を04に変更します。 各フレーバーでは、正規表現は想定される文字列のみに一致し、他には何も一致しない必要があります(コード名に限定されません)。末尾の改行は重要ではありません。つまり、正規表現は、末尾の改行を含まない文字列のみと一致するか、末尾の改行を含む文字列のみと一致するか、または両方とも一致する可能性があります。また、異なるフレーバーで一貫している必要はありません。入力は印刷可能なASCII(末尾の改行がある場合はそれを除く)であると想定できます。 スコアは(コードの長さ+ 10)/((フレーバーの数)^ 2)です。最低スコアが勝ちます。

1
申し訳ありませんがボードを印刷
ボードゲームをしていただけです 何人かの人々と、そして私はそれからいくつかの興味深い挑戦の基礎を作ることができることに気づきました。これは非常に簡単です。 あなたの仕事は、単にごめんなさいボードのアスキーアートバージョンを出力することです。 スペック まず、こちらが実際の画像です。ごめんなさい!参考のためのボード: 空のボードは次のようになります。 # > - - o # # # # > - - - o # # # # S v o # H # # # # # | | # | | # S o | # # ^ H # # # …

14
ベースを1-2-3-Tribonacciに、バイナリをベースに戻す
バックグラウンド 1-2-3-Tribonacciシーケンス 標準の反復式を次の式で置き換えることにより、フィボナッチ数列を作成できることを少し想像してください。 基本的に、最後の2つを合計して次を取得する代わりに、最後の3つを合計します。これが1-2-3-Tribonacciシーケンスの基礎です。 ブラウンの基準 ブラウンの基準では、次の条件があれば、シーケンスのメンバーの合計として整数値を表すことができます。 n1より大きいすべての場合 これがチャレンジにとって何を意味するか 次の初期条件によって形成される1-2-3-Tribonacciシーケンスのメンバーの合計として、正の整数を記述できます。 これは、このシーケンスのすべての値について、用語間の比率が2より大きくなることはありません(比率は約1.839で平均化されます)。 この数値表現システムでの書き方 リトルエンディアン表現を使用するとします。シーケンスのメンバーを次のように並べます。 1 2 3 6 11 20 37 68 次に、番号を表して(テストでは63)、指定された1-2-3-Tribonacciの値を求めます(合計値は63 (最初に最大値を使用)!)。数値が合計の一部である場合、その下に1を入れ、そうでない場合は0を入れます。 1 2 3 6 11 20 37 68 0 0 0 1 0 1 1 0 任意の整数に対してこれを行うことができます-最初に特定の入力以下の最大値を使用することを確認してください! 定義(最終的に) n1からあなたの言語の最大値の間の(標準ベースで書かれた)正の整数入力が与えられた場合、以下を実行するプログラムまたは関数を作成します。 値を定義済みの1-2-3-Tribonacciの数値表現に変換します。 このバイナリのような表現を使用し、それがバイナリであるかのように読み取ります。つまり、数字は同じままですが、意味は変わります。 この2進数を取得し、元の数値の基数に変換します。 この新しい番号を出力または返します。 ただし、出力が有効である限り、これらの手順に従う必要はありません。短い(および数学的に同等の)数式を魔法のように見つけた場合は、自由に使用してください。 例 関数をf定義で記述された関数とし、[](リトルエンディアンとして、それは重要ではありませんが)実行されたステップを表します(このプロセスに従う必要はありません、これは記述されたプロセスです): >>> f(1) …

2
氷の迷路を解く
氷の迷路は、ポケモンゴールドとシルバーでデビューして以来、ポケモンゲームの主なお気に入りの1つです。あなたの仕事は、これらのタイプの問題を解決するプログラムを作成することです。 名前が示すように、氷の迷路は主に氷で構成されています。プレイヤーが氷上である方向に移動すると、障害物と衝突するまでその方向に移動し続けます。自由に移動できる土壌もあり、プレイヤーが移動するのを止めます。最後の障害は石です。ストーンはプレイヤーと同じスペースを占有できず、プレイヤーがそこに移動しようとすると、移動する前に停止します。 リストのリストや改行で区切られた文字列など、3種類のフローリング(氷、土、石)ごとに3つの異なる値を含む、値の2次元コンテナを受け取ります。また、迷路内の開始座標と目標座標を示す2つのペア(または他の同等の2つの値コンテナー)を受け取ります。これらはゼロまたは1つのインデックスが付けられます。 実行時にプレイヤーが最後に到達するようにする動きのリスト(N、E、S、Wへの全単射で4つの異なる値)を出力する必要があります。 入力は常に迷路の周りに石の閉じた境界線を持っているので、プレイヤーが迷路を出るのを心配する必要はありません これはコードゴルフなので、最少バイトが勝ちます テストケース ここ.は氷~を表し、土壌Oを表し、石を表します。座標には1のインデックスが付けられます。ソリューションの各文字は、その文字で始まる方向を表します(例N=北) 入力 OOOOO OO.OO O...O OOOOO Start : 3,3 End : 3,2 出力 N 入力 OOOOOOOOOOOOOOOOO O........O.....OO O...O..........OO O.........O....OO O.O............OO OO.......O.....OO O.............OOO O......O.......~O O..O...........~O O.............OOO O.......O......OO O.....O...O....OO O..............OO OOOOOOOOOOOOOO~~O OOOOOOOOOOOOOOOOO Start : 15,12 End : 16,8 出力 N,W,N,E,N,E,S,W,N,W,S,E,S,E,N,E,N 入力 OOOOOOOOOOOOOOOO O~~~~~OOOOO~~~~O O~~O~OOOOOOO~~OO O...O..........O …

30
バイナリニブルでのカウント
この課題は、0から10までの数字を端末、ウィンドウ、キャンバスまたはスクリーンに出力することです。出力される各数値は4ビット幅のニブルとして表示される必要があるため、ゼロなどが表示さ0000れます。 出力される各番号は、スペース、カンマ、またはキャリッジリターンで区切ることができます。最小のソリューションが勝ちますが、シーケンスに繰り返し番号がない限り、好きな順序で番号を表示できます。 低レベルのバイナリ言語のエントリは、コンマまたは空白で出力することができない場合、コンマまたは空白の区切り文字について心配する必要はありません(つまり、標準出力がバイナリのみに制限されているか、ソリューションが初期のコンピュータキット用です)デジタルディスプレイが限られているKIM-1など)。

6
文字を数える-少しずつ!
単純な部分:印刷可能なASCII文字(スペース-チルダ)のみを含む入力文字列が与えられた場合、各文字の出現回数をカウントし、便利な形式で結果を返します。文字列の結果はa%hda7a次のようになりますa:3, %:1, h:1, 7:1, d:1。並べ替えは不要で、区切り文字と形式はオプションですが、どの数字がどの文字に対応するかを簡単に理解する必要があります。入力文字列にa:3, b:0, c:0, d:1, ...ない文字は使用しないでください(OKではありません)。 本当の課題: コード内のすべての文字を8ビットの2進数(UTF-16などを使用している場合は16ビット)に変換し、で始まるすべての文字を列挙し0ます。 すべての文字(i列挙子)に対して、i%7-bit 1 はでなければなりません1。ビットは右から番号が付けられています。他のすべてのビットは、何でも構いません。 次のコードを例として使用してみましょう。 [f]-xif)#f これをバイナリに変換すると、以下の配列が得られます。表す最初の番号は([持っている11がOKであるように、0番目の位置に。表す第2の数は(f持っている1ので、1がOKがあまりにもあることを、第1 'の位置に。このように続けて、あなたが表示されます上記のコードが有効であること。 C 76543210ビット番号 --------- ---------- [0101101 1 0-OK f 011001 1 0 1-OK ] 01011 1 01 2-OK -0010 1 101 3-OK x 011 1 1000 4-OK i 01 1 01001 5-OK f …

11
不正なサイクロン
概念 プログラミング言語でコードを出力するプログラムを作成します。そのコードは、実行時に元のプログラムを出力する必要があります。 ルール これは不正行為であるため、元のソースコードを読むことができます。 最初の出力プログラムは、元のプログラムと同じ言語である必要があります。 通常のクインを出力することはできません。2つのプログラムは異なっていなければなりません。 標準の抜け穴が適用されます。 これはコードゴルフなので、最短の回答が勝ちますが、選択されません。
19 code-golf  quine 

7
整数のアルファベット化
整数のアルファベット化 与えられた数字のセットについて、それらが綴られるときにアルファベット順に並べます(すなわち、1:1、2:2、90:90、19:19)。コードは範囲で機能するはずです[-999999, 999999]。出力には、数字の間に区切り文字が必要です。以下の例に示すように、スペースとカンマが機能するように、スペースが機能します。入力は、整数の配列、区切られた数字の文字列、または適切と思われる文字列です。すべての整数は一意であると見なされます。 このチャレンジのために数字はハイフネーションされず、スペースは他の文字の前にアルファベット順になります。負の数は、単語を使用して表現されると想定されますminus。たとえば、four前に、文字列を使用してfour thousand番号-40がソートされますminus forty。すべての数字は数字の単語のみで構成され、接続詞は含まれないと仮定します(例:のtwo thousand forty two代わりに使用two thousand and forty two) テストケース 1桁の整数: 入力: 1, 2, 3, 4, 5 出力: 5, 4, 1, 3, 2 複数桁の整数: 入力: -1002, 5, 435012, 4, 23, 81, 82 出力: 81, 82, 5, 4, 435012, -1002, 23 単語間のスペース、ハイフンなし、コンマまたは「and」: 入力: 6, 16, 60, 64, …

4
ゴルフフラワーオブライフ
ここでの課題は、選択した言語で正確に生命の花(ある人によれば神聖な幾何学的図形)を描くことです。 このデザインは、中心がピッチ1の三角形グリッドに配置された半径1の円と部分円の配置と、それらを囲む半径3の大きな円で構成されています。 デザインは好きなように拡大縮小できますが、数学的に正しいからの最大誤差2%は許容されます。ラスターグラフィックスを使用する場合、これにより、小さな円の直径が少なくとも約100ピクセルに効果的に制限されます。 これはコードゴルフなので、最短のコード(バイト)が優先されます。

20
最初のn個の偶数フィボナッチ数の合計
このコンテストはまだ開催されていないようです。 タスクは簡単です。n偶数であるフィボナッチ数列の最初の数を追加し、結果を出力します。 これはOEIS A099919によって与えられますが、シーケンスはからではfib(1) = 0なく、1ずつシフトされfib(1) = 1ます。 これはコードゴルフです。最も少ないバイト数が優先されます。 例 n sum 1 0 2 2 3 10 4 44 5 188 6 798 7 3382 8 14328 9 60696 関連する

26
最小のファイルを見つける
ゴール: 現在のフォルダー内で最小のファイルを見つけるプログラムを作成します。 ファイルサイズはバイトまたは文字で測定されます。 複数のファイルのサイズが同じ場合、いずれかを選択するか、すべてを表示できます。 フォルダーには少なくとも1つのファイルがあり、サイズが0のファイルはないと想定できます。 フォルダー内のすべてのファイルは、使用している言語でロードできると仮定します。 現在のディレクトリにフォルダがないと仮定します。 入力: 次の場合を除き、プログラムはユーザーからの入力を受け付けません。 言語に「現在のフォルダー」がない場合は、ユーザーにフォルダー名/パスを尋ねる場合があります。 ご使用の言語がコンピューター上のファイルに直接アクセスできない場合、ユーザーがファイルをアップロードできる場合があります。(たとえば、JavaScript) 出力: 最小のファイルの名前が表示されます。 どのファイルが選択されているかが明確である限り、先頭/末尾の記号を使用できます。 (すべてのファイルのリストを印刷することは規則に反します)。 ノート: 標準の抜け穴は許可されていません。 フォルダー内のファイルを変更/作成/削除して結果を変更することはできません。 これはcode-golfです。最短回答(バイト単位)が勝ちます。

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