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

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

4
最小のチェスプログラム
Assemblyで487バイトの2プレーヤー(人間対人間)チェスプログラムを書いたフランスのプログラマーに語ったこの最近の記事に触発されて、小さなチェスプログラムが他の言語でどのようにできるのか疑問に思いました。 詳細 プログラムは合法的なチェスの動きのみを受け入れなければなりません。 チェックの場合は最初のルールが適用されますが、チェック/チェックメイトの宣言は必要ありません(望ましい)。 記事によると、キャスリングは必要な実装ではありません。 また、passantを実装する必要はありません。 ただし、8位に達したらポーンプロモーションを許可する必要があります(単に強制的にクイーンに変換することを選択することもできます)。 ターミナルASCII、GUIなど、ボードの表示方法はユーザー次第です。 誰の番であるかを表示する必要があります。 チェスのルールはここで見つけることができます -指定されたトーナメントルール(タイミング、タッチなど)を無視し、キャスリングとパッサンは必須の実装ではないことを覚えておいてください。
19 code-golf  chess 

9
ハミング数
正の整数を指定すると、その数のハミング数を順番に出力します。 ルール: 入力は正の整数N ≤ 1 、000 、000n≤1、000、000n \le 1,000,000 出力はhttps://oeis.org/A051037の最初のn項である必要があります 実行時間は1分未満でなければなりません これはcode-golfです。最短のコードが勝つ

9
スーパーセットを計算する
ここでのタスクは簡単です。 整数セットのリストが与えられたら、セットの和集合を見つけます。つまり、元のセットのリスト内のすべての要素を含む(ただし、他の要素は含まれない)整数セットの最短リストを見つけます。例えば: [1,5] and [3,9] becomes [1,9] as it contains all of the elements in both [1,5] and [3,9] [1,3] and [5,9] stays as [1,3] and [5,9], because you don't want to include 4 セットは範囲表記を使用して表記されます:[1,4]整数を意味します1,2,3,4。セットは無制限にすることもできます:[3,]すべての整数>= 3を[,-1]意味し、すべての整数を意味します<= -1。範囲の最初の要素が2番目の要素より大きくならないことが保証されています。 文字列表記のセットを選択するか、定数の非整数を「無限」値として使用して、2要素のタプルを使用できます。2つの異なる定数を使用して、無限の上限と無限の下限を表すことができます。たとえば、Javascriptでは、すべてのテストケースで一貫して使用している限り、[3,{}]すべての整数の表記に使用できます。>= 3{} テストケース: [1,3] => [1,3] [1,] => [1,] [,9] => [,9] [,] …

8
Brain-Flak Classicインタープリターを作成してください!
Brain-Flak(Brainf ** kとFlak-Overstowのクロス)は、スタックベースの難解な言語です。この課題が投稿されて以来、言語は進化し更新されましたが、この言語のこの最初のリビジョンは「brain-flak classic」として知られています。 Brain-Flakクラシックコードの文字列を取得して評価するプログラムまたは関数を作成する必要があります。また、整数の(空の可能性のある)リストを取ります。Brain-Flakクラシックプログラムへの入力があります。 言語 Brain-Flakには、「左」と「右」として知られる2つのスタックがあります。アクティブなスタックは左から始まります。空のスタックがポップまたはピークされた場合、0が返されます。変数はありません。プログラムが開始されると、各入力がアクティブスタックに順番にプッシュされます(したがって、最後の入力がスタックの一番上になります)。 Brain-Flakプログラムで有効な文字はのみ()[]{}<>であり、常にバランスをとる必要があります。無効な文字がある場合、または角かっこが一致しない場合、未定義の動作が発生します。何でも有効です。 関数には、NiladsとMonadsの 2つのタイプがあります。niladは 0の引数をとる関数です。すべてのniladsは次のとおりです。 () +1。 [] -1。 {} アクティブなスタックをポップします。 <> アクティブなスタックを切り替えます。 これらは評価されるときに連結されます。したがって、アクティブスタックの上部に「3」がある場合、このスニペットは次のとおりです。 ()(){} するために評価されます1 + 1 + active.pop()。5.に評価思われる<>0と評価されます。 モナドは1つの引数、Brain-Flakコードの塊を取ります。すべてのモナドは次のとおりです。 (n) アクティブなスタックで「n」を押します。 [n] 'n'をintおよび改行として出力します。 {foo}active.peek()!= 0の間に、fooを実行します。0¹に評価します。 <foo> fooを実行しますが、0として評価します。 これらの関数は、内部の値も返すため、 (()()()) 3を押して [()()()] 3を印刷しますが、 [(()()())] 印刷してプッシュします3。 プログラムの実行が完了すると、アクティブスタックに残っている各値が整数として出力され、間に改行が入ります。他のスタックの値は無視されます。 ルール: プログラムは、(-128、127)の範囲の数字と、少なくとも255のスタックサイズをサポートする必要があります。より大きな、素晴らしいをサポートする場合。 アンダーフロー/オーバーフローは未定義です。 サンプルIO: 空のプログラム: 入力:なし 出力:なし …

5
インタビュー:フロントナイン
インタビュー:フロントナイン これは、就職の面接の質問をプログラミングすることに触発された一連の課題の最初のものです。 潜在的な将来の上司が座っているオフィスに入ります。「さあ、座って」と彼は言う。あなたは緊張して座って、きびきびとしたプロの服装にしわがないようにします。彼はあなたの教育、以前の仕事の経験などについて多くの質問をします。あなたはほとんど正直にそれらに答え、あなた自身をより良くするためにあちこちに少し装飾を追加します。彼は前かがみになり、再び話し始めます。 「コードゴルフのことを聞いたことがありますか?」はい、あなたはゴルフのコードが好きで、あなたの自由な時間に頻繁にそれをします。「すごい。インタビューの最後の部分は技術的な試験です。一連の問題を解決するためのコードを書く必要があります...」彼はあなたに一枚の紙を渡します。あなたはすぐにそれを見ます。簡単です。なぜ彼はコードゴルフについて尋ねたのですか? 「これらの問題に対する解決策の合計サイズに基づいて採点されます。他のすべての候補者よりも低い得点が得られるなら、仕事はあなたのものです。」ああ。「ゴルフのように、18の問題があり、9の2つのセットに分かれています。お好きな言語を自由に使用して解決してください。聞いたことのあるすべての言語、 「がんばって!」 タスク タスク1:乗算表 番号を与えられたn範囲内の正の整数の入力、出力、乗算テーブルとして[1, n]。n範囲内になります[1, 12]。すべての数値は、テーブル内で左揃えにする必要があります。x左上隅に文字を使用します。 例: n=4 x 1 2 3 4 1 1 2 3 4 2 2 4 6 8 3 3 6 9 12 4 4 8 12 16 n=10 x 1 2 3 4 5 6 7 8 9 10 …

2
vimに緑色の卵とハムを入力します
スース博士の「Green Eggs and Ham」という本は、本の全編に50の異なる言葉しかないことで有名です。 あなたのタスクは、vimテキストエディタで空のファイルに適用すると、すべてのデフォルト設定で通常モードで開始されるときに、Green EggsとHamのテキスト全体を生成するキーストロークのシーケンスを作成することです。キーストロークは、操作の一部として他のファイルをロードしてはなりません。すべてのテキストはエディター内で生成する必要があります。 最終バッファは、このファイルとまったく同じように見える必要がありますが、最終的にどのモードになってもかまいません(<Esc>通常モードに戻すために最終バッファを保持する必要はありません)。 Shiftキー<C-o>を使用したり、Shift キーを使用して大文字のカウントを単一のキーストロークとして入力したりするコード化されたキーストローク。 この目標を達成するための最も少ないキーストロークのシーケンスが勝ちです。

7
Y2K…2019年?
2019年8月10日ですが、あなたの仕事はまだY2Kに関係しています。変だよね? 2桁の数字を追加して、それ自体を印刷するプログラムを作成します。初めて実行するときは、その出力に00を追加する必要があります(これはソースコードです。これは、変種であるためです)。その出力、2桁の番号のない元のプログラムを実行すると、元のプログラムが出力されますが、01が追加されます。その出力を実行して、02を追加したOGプログラムを取得し、その後03を使用してプログラムを取得します。このチェーンは99まで継続する必要がありますBREAKING NEWS: WORLD ENDS。そのプログラムはを出力するはずです。 プログラムがY2Kparanoia: yes次の場合: 出力するはずです Y2Kparanoia: yes00 その出力は印刷するはずです Y2Kparanoia: yes01 その出力は印刷するはずです Y2K paranoia: yes02 ステップ100まで繰り返します:このプログラムは、指定された終末ニュースを出力します これはコードゴルフであるため、これらの手順を実行しながら印刷できる最短のプログラムが優先されます。
18 code-golf  quine 

1
グリッド充填蛇行を完了する
グリッド塗りつぶし蛇行は、正方形のグリッドのすべてのセルを少なくとも1訪問し、隣接するセル間のエッジを2回以上渡らず、それ自体を渡さない閉じたパスです。例えば:N×NN×NN \times N グリッドが満たされると、次の8つのタイルのいずれかでグリッドの各セルを表すことができます。 このように番号を付けると、上記の蛇行のタイルはこのマトリックスで表すことができます。 5 6 5 6 4 8 3 2 5 7 6 2 4 3 4 3 あなたの仕事は、タイルの不完全なセットを与えられたグリッド充填蛇行を完了することです。たとえば、不完全な蛇行: ... 0不足しているタイルに対してsを使用して表すことができます: 5 0 0 0 6 0 0 7 0 0 0 0 0 0 3 2 4 0 0 0 0 0 3 0 0 ...このように完了することができます: …

7
グラフとしての3x3x3キューブの表面
あなたの仕事は、それぞれがルービックキューブのファセットに対応する54の頂点を持つグラフを生成することです。対応するファセットが辺を共有する場合、2つの頂点間にエッジがあります。 ルール アルゴリズムでグラフを表すために、隣接リスト、隣接行列、エッジリスト、または適切な形式を出力することを選択できます。(人間が読める視覚的なグラフは、ほとんどの場合、一般的にアルゴリズムの合理的な形式ではありません。) すべての頂点を自分自身に隣接させることも、隣接させないこともできます。 エッジごとに両方向を含める(セルフループでは1〜2回カウントする)か、エッジを1回だけ出力しますが、ウェイを混在させることはできません。 頂点の番号を付け直したり、いくつかの番号をスキップしたり、任意の方法で頂点に番号以外のラベルを使用することもできます。他の人があなたの答えをより簡単な方法でチェックできるように、番号が明らかでない場合は番号も投稿する必要があります。 これはコードゴルフです。バイト単位の最短コードが優先されます。 出力例 これは、例で使用されている頂点の番号付けです。 0 1 2 3 4 5 6 7 8 9 10 11 18 19 20 27 28 29 36 37 38 12 13 14 21 22 23 30 31 32 39 40 41 15 16 17 24 25 26 33 34 …

10
デバッガの内外で異なる動作をするプログラム[終了]
閉じた。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 7か月前に閉鎖されました。 課題は、引数やその他の入力を受け取らず、デバッグされていないときの動作とはデバッガーで異なる動作をする決定性プログラム(任意の言語/ OS)を記述することです。 たとえば、プログラムはデバッグ中は何かを出力しますが、デバッグされていない場合は何も出力しません。または、それぞれの場合に異なるものを出力します。または、デバッグ中はクラッシュしますが、デバッグされていない場合はクラッシュしません。またはその逆。 警告と説明: タイミングの違いは考慮されません。 通訳言語が許可されています。 決定性を強調するために、動作はデバッグコンテキスト内外で正確に再現可能でなければなりません。 デバッガー自体の存在は、2つのケースの唯一の違いです。 入力(stdinまたはargv ENVなど)を追加するようデバッガーに指示することは不正です。デバッガーはプログラムを「そのまま」実行する必要があります。 デバッグ実行と非デバッグ実行の間で環境を変更する(仮想マシンまたは異なるOSで実行する、メモリ制限などのOS設定を変更する)ことは許可されていません。 最短のコードが優先されます。デバッガがどのように動作するかについて興味深いことを明らかにする賞金を授与することができます。
18 code-golf 

12
空白を埋める
文字列に特定の関数セットがあるとしましょう。これらの関数は、空白またはmadlibを埋めるようなものですが、入力が1つだけで、それを使用してすべての空白を埋めることが異なります。たとえば、次のような関数があるとします I went to the ____ store and bought ____ today. この関数を文字列に適用cheeseすると、結果は次のようになります。 I went to the cheese store and bought cheese today. これらの関数は、空ではない文字列のリストとして表すことができます。ここで、空白は単に文字列間のギャップです。たとえば、上記の関数は次のようになります。 ["I went to the ", " store and bought ", " today."] この表現では、この種のすべての関数に対して1つの表現しかなく、各表現に対して1つの関数しかありません。 本当にすてきなことは、そのような関数のセットが合成中に閉じられることです。つまり、2つの関数の構成は、常にこれらの関数の別の1つです。たとえば、上記の関数を ["blue ", ""] (blue入力の先頭に追加する関数)関数を取得します: ["I went to the blue ", " store and …

22
指数の成長とそれ以上に!
チャレンジ 所与の基地1&lt;b&lt;101&lt;b&lt;101 < b < 10、インデックスt≥1t≥1t \ge 1、出力タームxtxtx_t以下のように定義されます: x1=1110x1=1110x_1 = 11_{10} xi+1xi+1x_{i+1}は、xixix_iを基数bbb変換してから、その数字を基数 10で再解釈することによって取得されます。101010 出力は10を基数にする必要があります101010 ベース5、用語5のウォークスルーは次のとおりです。 x1=1110x1=1110x_1 = 11_{10}。 1110=2151110=21511_{10} = 21_{5} sox2=2110x2=2110x_2 = 21_{10}。 2110=4152110=41521_{10} = 41_{5} sox3=4110x3=4110x_3 = 41_{10}。 4110=13154110=131541_{10} = 131_{5} sox4=13110x4=13110x_4 = 131_{10}。 13110=1011513110=10115131_{10} = 1011_{5} sox5=101110x5=101110x_5 = 1011_{10}。 文字列"1011"または整数を出力します1011。 テストケース 注:これらは1つのインデックス付きです base 2, term 5 --&gt; …
18 code-golf  number 

19
二分木の高さを計算する最短プログラムを書く
二分木の高さは、ルートノードからルートから最も遠いノードの子までの距離です。 以下に例を示します。 2 &lt;-- root: Height 1 / \ 7 5 &lt;-- Height 2 / \ \ 2 6 9 &lt;-- Height 3 / \ / 5 11 4 &lt;-- Height 4 バイナリツリーの高さ:4 二分木の定義 ツリーは、符号付き整数値と、他の2つのツリーまたはそれらへのポインターを含むオブジェクトです。 二分木構造体の構造は次のようになります。 typedef struct tree { struct tree * l; struct tree * r; int v; …

30
数字が減り、文字が増える
文字が減少する一方で数字が増加することからランダムにヒントを得た 文字と整数が混在したリスト(たとえば、['a', 2, 3, 'b'])が与えられた場合、アルファベットの1桁だけ文字を増やし(ztoでラップa)、数字を1 減らします。上記の例では、出力はになります['b', 1, 2, 'c']。 入力は、混合タイプのリスト、区切り文字列、文字列のリストなどです。 zにラップしますがa、に1行き0、に0行きます-1。 入力は[a-z]整数のみです。大文字[A-Z]が入力しやすい場合は、大文字を選択できます。 入力は空でないことが保証されます。 入力には、数字のみまたは文字のみを含めることができます。 例: Input Output ['a', 2, 3, 'b'] ['b', 1, 2, 'c'] ['a', 'b', 'z'] ['b', 'c', 'a'] [-1, 0, 257, 'x'] [-2, -1, 256, 'y'] [0, 3, 1, 20382876] [-1, 2, 0, 20382875] 規則と説明 入力と出力は、任意の便利な方法で指定できます。 結果をSTDOUTに出力するか、関数結果として返すことができます。 …

8
この四辺形は周期的ですか?
数学では、周期的な四辺形は頂点がすべて同じ円上にあるものです。つまり、すべての頂点は他の3つの外接円上にあります。詳細については、MathWorldの記事を参照してください。 例 これらの四辺形は周期的です。 この台形は周期的ではありません。 (ウィキペディアの画像) 目的 凸四辺形を形成する反時計回りの順序で4つの頂点の座標が与えられたら、四辺形が周期的であるかどうかを判断します。 座標は整数になります(ただし、外心座標と外接半径は必ずしも整数ではないことに注意してください)。前の段落で暗示されているように、3つのポイントが同一直線上になく、2つが一致しません。 I / O 適切な形式を使用して入力できます。、特に[[x1,x2,x3,x4],[y1,y2,y3,y4]]、[[x1,y1],[x2,y2],[x3,y3],[x4,y4]]複素数のすべての罰金です。 trueとfalseの異なる一貫した値を使用して出力します。 テストケース 正しい: [0,0], [314,0], [314,1], [0,1] [-5,5], [5,-5], [1337,42], [42,1337] [104, -233], [109, -232], [112, -231], [123, -224] 偽: [0,0], [314,0], [314,100], [0,99] [31,41],[59,26],[53,58],[0,314]

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