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

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

1
シュートアピアリング
梨とスチール シュートの 5つの画像を次に示します。 A:B:C:D:E: これらはサムネイルのみです。クリックするとフルサイズになります。 (Algodooで作成しました。) このクラスの画像には、常に次のプロパティがあります。 背景は常に400×400ピクセルです。(SEイメージは非可逆圧縮されるため、完全に白ではない場合があります。) それらは1〜4個の同一の梨を持ち、それぞれが(ほぼ)任意の方法で回転して配置されます。 彼らは、画像の下部に到達する1つの垂直スチールシュートを持っています。 シュートの下部を除いて、シュートと梨の境界ボックス(境界ボックスの例)は決して画像境界に触れたり、境界から出たりすることはありません。 梨のバウンディングボックスが互いに重なることも、シュートと重なることもありません。 B、C、およびDのように、梨はシュートの傾斜部分の下にある場合があります。(したがって、シュートのバウンディングボックスはナシのバウンディングボックスと重なる場合があります。) シュートは、ナシのすべてのバウンディングボックスがその上に自由に収まるだけの十分なスペースがあり(「ベアフィット」ケースはテストされない)、コラム部分の一部が見える限り、任意の水平および垂直位置にできます。 チャレンジ そのような画像を取り込み、同じ場所にシュートがある別の400×400画像を出力するプログラムを作成しますが、梨はすべてシュートの上にくるように再配置されます(そうすれば、それらはシュートに落ちてジュースになります)。 出力イメージの要件は次のとおりです。 入力画像内のすべての梨は、シュートの上、漏斗の左端と右端の間にあるように再配置する必要があります。(エッジを超えることはできません。) 各ナシは、回転角度を維持する必要があります。(したがって、梨を切り直して貼り付けるのではなく、梨を切り取って貼り付ける必要があります。) 梨は互いに重なり合ったり、互いに触れたり、シュートに触れたりしてはなりません。(ただし、梨の境界ボックスは重なる場合があります。) 梨が触れたり、画像の境界から出たりしてはいけません。 5つのサンプル画像の有効な出力の例を次に示します。 A:B:C:D:E: これらはサムネイルのみです。クリックするとフルサイズになります。 Eの入力画像はすでに有効な出力でしたが、技術的に必要ないときに梨を再配置するだけで十分であることに注意してください。 詳細 stdin /コマンドライン/関数呼び出しを使用して、画像のファイル名または生の画像データを取得します。 選択した名前のファイルに画像を出力するか、生の画像ファイルデータを標準出力に出力するか、単に画像を表示します。 一般的なロスレス画像ファイル形式を使用できます。 グラフィックおよび画像ライブラリを使用できます。 あちこちにあるいくつかの不正確なピクセル(損失など)が大したことではありません。視覚的に間違っていることがわからない場合は、おそらく大丈夫です。 バイト単位の最短コードが優先されます。Tiebreakerは、最も投票数の多い投稿です。

8
最小の完璧な二乗正方形を印刷する
広場を二乗することだけで、他の正方形を使用して、正方形のタイル張りのプロセスです。このタイリングが異なるサイズの正方形のみを使用する場合、完全であると見なされます。可能な限り最小二乗完璧な正方形は 21種類の正方形を使用して、タイル112x112の正方形です。 この正方形のアスキーアート版を以下に作成しました。 ################################################################################################################ # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## …

2
マッチスティック方程式
この課題におけるあなたの仕事は、このような「マッチスティック方程式」を分析することです... ...そして、一致を再配置することで有効な方程式に変換できるかどうかを調べます。もしそうなら、あなたはそうするための動きの最小数と結果の方程式を出力することになっています。 入力 入力は、STDINから読み取ることができる文字列で、関数の引数として取得するか、ファイルに保存することもできます。これは、マッチスティック配置を表す方程式であり、次のEBNFを使用して説明できます。 input = term, "=", term ; term = number | (term, ("+" | "-"), term) ; number = "0" | (numeralExceptZero , {numeral}) ; numeralExceptZero = "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ; numeral = …
16 code-golf 

7
騎士がチェスボードにとどまる確率は何ですか?
チェス盤のサイズと騎士の初期位置を考慮して、k移動後に騎士がチェス盤の内側になる確率を計算します。 注意: 騎士は、等しい確率で8つの可能なすべての動きをします。 騎士がチェス盤の外に出ると、内部に戻ることはできません。 入力 入力は次の形式のカンマ区切りです: l,k,x,y ここlで、チェス盤の長さと幅k、ナイトの移動数、ナイトxの初期位置のx位置、ナイトの初期位置のyy位置です。0,0は、ボードの左下隅であり、ボードのl-1,l-1右上隅であることに注意してください。 アルゴリズム: ナイトの初期座標から始めます。この位置で可能なすべての動きを行い、これらの動きに確率を掛けます。各動きが関数を再帰的に呼び出すと、終了条件が満たされるまでこのプロセスを続けます。終了条件は、ナイトがチェス盤の外にある場合、この場合は0を返すか、必要な移動数が使い果たされた場合、この場合は1を返します。 再帰の現在の状態は、現在の座標とこれまでに実行されたステップ数にのみ依存していることがわかります。したがって、この情報を表形式で記憶できます。 クレジット このチャレンジはもともと、CC BY-NC-ND 2.5 INライセンスの下で公開されたcrazyforcode.comのブログ投稿からのものです。少し変更して、少し難しくしました。
16 code-golf  chess 

4
ASCIIフィボナッチ時計を作成する
誰かがフィボナッチ数を使って本当に派手な時計を作りました。好きなように!これを作り直しましょう。 クロックは、1から始まる最初の5つのフィボナッチ数に対応する5つのセクションで構成されます(つまり、1、1、2、3、5)。 ccbeeeee ccaeeeee dddeeeee dddeeeee dddeeeee 時計は、5時間単位で12時間を表示できます。以下にその仕組みを示します。時間7:20を考慮してください。7時間目は、次のようにフィボナッチ数に分解できます。 7 = 2 + 5 5分の4単位もあります。4は次のように分解できます。 4 = 2 + 1 + 1 現在、時間は赤で、分単位のチャンクは緑で表示され、時間と分で数字が使用されている場合は青で表示されます。番号がまったく使用されない場合は、白のままです。したがって、上記は次のように表示されます。 BBGRRRRR BBGRRRRR WWWRRRRR WWWRRRRR WWWRRRRR しかし、待ってください、まだあります。上記の分解だけが可能性ではありません。7 = 3 + 2 + 1 + 1また4 = 3 + 1、とを書くこともできます。 GGRWWWWW GGBWWWWW GGBWWWWW GGRWWWWW BBBWWWWW or BBBWWWWW BBBWWWWW BBBWWWWW BBBWWWWW …

10
グラフのリダイレクトを解除する
前書き この課題では、自己ループのある有向グラフが与えられますが、タスクはそれを自己ループのない無向グラフに変換することです。 入力 入力は、頂点が{0, 1, ..., n-1}自然数に設定された有向グラフですn ≥ 0(または{1, 2, ..., n}、1ベースのインデックス付けを使用する場合)。グラフはlength- nlist として与えられます。LここでL[i]は、vertexの外側のリストiです。たとえば、リスト[[0,1],[0],[1,0,3],[]]はグラフを表します .-. | v '-0<--2-->3 ^ | | | v | 1<--' ネイバーリストは必ずしも順序付けられているわけではありませんが、重複がないことが保証されていることに注意してください。 出力 出力は、次のように取得された、入力と同じ形式の別のグラフです。 すべての自己ループを削除します。 残りの各エッジについてu -> v、反転エッジがv -> uまだ存在しない場合は追加します。 入力と同様に、出力グラフの隣接リストは順序付けられていない場合がありますが、重複リストを含めることはできません。上記のグラフの場合、正しい出力はになり[[1,2],[0,2],[0,1,3],[2]]、グラフを表します 0<->2<->3 ^ ^ | | v | 1<--' ルール グラフでは、0ベースまたは1ベースのインデックスを使用できます。機能と完全なプログラムの両方が許容されます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース これらのテストケースでは、0ベースのインデックス付けを使用します。1から始まる場合、各数値をインクリメントします。これらの隣接リストは昇順でソートされますが、必須ではありません。 [] -> [] …

16
Cookieをコーディングしてください
チャレンジ 入力に応じた種類のASCII Cookieをコーディングします。 入力 クッキーの種類。これは、「プレーン」、「チョコレート」、または「ナッツ」の3つの文字列のいずれかです。関数の引数、stdin(またはそれに最も近いもの)、またはファイルの引数の場合があります。 出力 ASCII Cookie。下記参照。 でなければなりません ___ / \ | | \___/ プレーン入力の場合、 ___ /. .\ | . | \___/ チョコレート入力用、最後に ___ /^ \ |^ ^| \___/ ナット入力用。 その他の情報 これは私の最初の挑戦であり、できる限り簡単です。建設的なフィードバックは大歓迎です。 そのためには、あらゆる手段を使用します。 末尾のスペースは問題ありません。 これはコードゴルフチャレンジであるため、9日間(2015年8月12日水曜日)の終わりに最短エントリーが勝ちます。 ありがとうございました! 勝者は41バイトのPythを使用したJakubeです。参加してくれたすべての人に感謝します。私は今、より複雑な課題を思い付くことに自分自身を任せます。

3
レースオブザディジット
個別の1桁の正の整数の開始順序と、トラックの長さを入力出力として指定するか、番号の終了順序を返すプログラムまたは関数を作成する必要があります。 入力[5,1,2,6,7] and 14は次のレースを定義します。 -------------- 76215 -> -------------- レースのルール トラックはラップアラウンドし、桁は複数のラップを移動できます。 ステップの順序は周期的で、開始位置に基づいています。この例では5 1 2 6 7 5 1 2 ...。 同じ位置に複数の数字を含めることはできません。 すべての桁には、digit_valueステップごとにセルの速度があります。数字または数字の連続ブロックを追い越すには、余分なステップが1つかかります。桁に必要な速度がない場合、桁(のブロック)の前で停止します。例: [41 ] => [ 1 4 ] 4 overtakes 1 [2 1 ] => [ 21 ] 2 can only move 1 as it can't move 3 to overtake …

6
アスキーアートオブザデイ#3-中国の神社
今日のAAODのエピソードでは、さまざまな高さの中国神社を建設します。 高さのために、以下の例を考えてみましょう(N)1へ6 N = 1: . | . ]#[ . \_______/ . ]###[ . \__]#.-.#[__/ |___| |___| |___|_|___| ####/_\#### |___| /_____\ N = 2: . | . ]#[ . \_______/ . ]###[ . \___________/ . ]#####[ . \___]#.---.#[___/ |__|_| |_|__| |__|_|___|_|__| #####/___\##### |_____| /_______\ N = 3: . | . …

3
あなたはそれをセンタリングと呼びます、私はそれをコードゴルフと呼びます
「それでは、並べられた画像は天国からの小さな贈り物のようなものです。ようこそ、しかし予期せぬことです。」-ジオビット このチャレンジに勝った人には+10000の評判。 ルール: 1)プログラムを生成します。 2)入力は画像になりますが、ファイルとして渡されるか数字のリストとして渡されるかはユーザー次第です。 3)出力は、ペイント(または同様の)で開くと、画像が整列して表示されるファイルです。 4)キャンバスのサイズは常に100 x 100から2000 x 2000ピクセルの間です。常に長方形になりますが、常に正方形になるとは限りません。 5)画像のハードコーディングやファンキーなURLマジックはありません。 6)使用する外部ライブラリはありません。 集中化ガイド(Joshpbarron Variant) 軸上の最初の白(255,255,255、> 0 rgba)または透明(x、y、z、0 rgba)がキャンバスの端から等しい距離(プラスまたはマイナス1ピクセル)の場合、画像は中央にあると定義されます。 これは、次の方法で実現できます(検証されます)。 1)オブジェクトの周りの境界ボックスを想像してください。(ヘルプのために黒い線が追加されました) 2)オブジェクトの端がキャンバスの適切な端から等距離になるまでオブジェクトを移動します。 3)黒い線を忘れます。 入力: 出力: その他の入力はこちら。 ここでそれぞれの出力。 +10000担当者は嘘です。

30
反強磁性秩序
反強磁性は、IBMの研究者が同じ量の原子で1テラバイトのディスクから100テラバイトのディスクにジャンプするために使用したものです。 反強磁性を示す材料では、通常電子のスピンに関連する原子または分子の磁気モーメントは、隣接するスピン(異なる副格子上の)が反対方向を指す規則的なパターンで整列します。 あなたの仕事は、上の図のような反強磁性原子の順序を描くプログラムを書くことです。少なくとも4組のペアを持つことができなければなりませんが、さらに多くのペアがあります。 各ペアは次のように表示する必要がありますが、実際の矢印でなければなりません。 上下 アップダウン 上下 出力は、ASCIIアートまたはグラフィック出力になります。 関数またはプログラム全体のみを作成できますが、入力を受け取り、その数のペアを描画する必要があります。言葉だけの例: 入力:1 上下 アップダウン 上下 入力:2 上下上下 ダウンアップダウンアップ 上下上下 許容される矢印: ↑ そして ↓ ⇅ そして ⇵ /|\ そして \|/ 答えは読みやすいように、言語、Xバイト形式で入力してください。最小バイト数が勝ちです!

6
重なる円
あなたは、プログラムまたは機能を記述する必要があり、その与えられたNことにより、N等間隔の正方格子と固体内接円出力または戻り黒丸によって部分的にまたは完全に重複しているグリッドの正方形の数。 サイズが0のオーバーラップ(つまり、円が線に触れるだけの場合)はカウントされません。(これらの重複は、例えばで発生しN = 10ます。) 例 N = 8 (64 squares), Slices = 60 入力 整数N > 0。(グリッドにはN * N正方形があります。) 出力 整数、ソリッドサークルスライスの数。 例 (入出力ペア) Inputs: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Outputs: 1 4 9 16 25 36 45 60 77 88 …

3
ASCII Lシステムレンダラー
バックグラウンド L-システム(又はLindenmayerシステム)は、とりわけ、容易にモデルフラクタルに使用することができ、平行書き換えシステムです。この質問は、決定論的でコンテキストのないLシステムに関するものです。これらは、アルファベットの記号、初期公理文字列、および各アルファベット記号を新しい文字列にマッピングする一連の書き換えルールで構成されています。ルールは公理に並行して適用され、新しい文字列が生成されます。その後、このプロセスが繰り返されます。 たとえば、公理「A」とルールA = ABA; B = BBBを使用するシステムは、文字列「ABA」、「ABABBBABA」、「ABABBBABABBBBBBBBBABABBBABA」などのシーケンスを生成します。簡潔にするために、明示的に言及しませんLシステムを定義するときのアルファベット。さらに、明示的な書き換えルールのないシンボルは変更されていないと見なされます(つまり、シンボルAのデフォルトルールはA = Aです)。 Lシステムは、タートルグラフィックスの形式を使用して視覚化できます。慣例により、亀は右向きになります。文字列は、そのシンボルを反復して描画されます。Fは「1単位前方に描画」、Gは「1単位前方に移動」、+は「1単位左に曲がる」、-は「1単位右に曲がる」ことを意味します単位"。文字列内の他のすべてのシンボルは無視されます。この質問のために、角度単位は常に90°であると想定されています。 仕事 Lシステムの仕様と反復回数が指定されている場合、プログラムは、ボックス描画文字を使用して、結果の文字列のASCIIレンダリング(上記の説明を参照)を出力する必要があります。 パラメーターは、公理、書き換え規則(方程式の;区切りのリストとして)、および書き換えの反復回数を含むスペース区切りの文字列として渡されます。たとえば、入力 "FF = FGF; G = GGG 2"は文字列 "FGFGGGFGF"を生成するため、適切なギャップで4本の線を描画します。 Lシステムで使用される記号は、スペースとセミコロンを除く任意のASCII文字にすることができます。シンボルごとに指定される明示的なルールは最大で1つです(上記のように、デフォルトの書き換えルールはIDマッピングです)。 出力には常に少なくとも1つのFが含まれると想定できます。 出力には、次のUNICODEボックス描画文字を使用する必要があります、視覚化を表すを:─(U + 2500)、│(U + 2502)、┌(U + 250C)、┐(U + 2510)、└(U + 2514) 、┘(U + 2518)、├(U + 251C)、┤(U + 2524)、┬(U + 252C)、┴(U + 2534)、┼(U + 253C)、╴(U + 2574)、 …

1
Kolmogorov Complexity Solverを書く
文字列Sのコルモゴロフの複雑さは、出力が正確にSであるプログラミング言語Lで書かれた最短プログラムPの長さです。(はい、実際の定義はより形式的ですが、これは課題に十分です。) この挑戦であなたの仕事は、で書かれたプログラムであり、可能な限り最短の「コルモゴロフ複雑性ソルバー」、書くことであるLの文字列を取り込み自体Sと最短返しPで書かれたL出力というSを。 これに対する単純なアプローチは、すべての長さ1のプログラム、次にすべての長さ2のプログラム、すべての長さ3のプログラムなどを繰り返し、それぞれを実行して、Sを出力するプログラムが見つかるまで出力を測定することです。このアプローチの問題は、これらのプログラムの一部が実行を停止しない可能性があることです。つまり、ソルバー自体が停止することはありません。そして、停止する問題のため、停止しないプログラムを回避する確実な方法はありません。 単純ですが不完全な解決策は、潜在的なPのそれぞれの実行時間に時間制限を設けることです。時間内に停止しないプログラムは渡されますが、ソルバーは確実に停止します(Lのプログラムが実際に制限時間内にSを出力できると仮定)。 チャレンジ ソルバーは、次の3つのことを行うプログラムまたは関数として記述します。 文字列S。 秒単位の制限時間またはそれより短い時間範囲(ミリ秒など)である正の整数T。 文字列Aの潜在的に使用する文字のアルファベットのPさん。 また、Aの文字のみを含む最短のPを出力し、T時間単位未満で実行し、Sを出力します。 これは一般的な擬似コードです。 Function KolmogorovComplexitySolver(S, T, A): Assign N to 0 Loop until function returns: In any order, iterate over all strings of length N that only contain characters from *A*. Call the current string P: Execute P, saving the output to …

19
指定されたバイト数を人間が読める形式にフォーマットします
挑戦と起源 スタックオーバーフローに関する一般的な質問は、Javaでバイトサイズを人間が読める形式に変換する方法です。最もよく投票された答えにはこれを行うための非常に良い方法がありますが、これはcodegolfであり、私たちはもっとうまくやることができますか? あなたの課題は、与えられたバイト数を人間が読める正しい形式に変換し、その結果を言語から標準に出力するメソッドまたはプログラムを作成することです。* *詳細については、ルールを参照してください! 入力 入力は常に最大(2 ^ 31)-1の正のバイト数になります。 出力 出力として国際単位系またはバイナリ表記のどちらを使用するかを選択できます(SI表記はおそらくいくつかのバイトを節約します)。 SI: B, kB, MB, GB Binary: B, KiB, MiB, GiB 注:入力範囲が制限されているため、GBまたはGiBよりも高いユニットは使用できません。 出力例 国際単位系: Input Output 0 0.0 B 999 999.0 B 1000 1.0 kB 1023 1.0 kB 1024 1.0 kB 1601 1.6 kB 160581 160.6 kB 4066888 4.1 MB 634000000 …
16 code-golf 

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