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

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

4
図が与えられたら、Xを見つける
Xを見つける 数学の質問に触発されて、与えられた形状に対して「Xを見つける」ように求められます。もともと、文字列の文字「x」のxとyの位置を印刷するという課題がありました。しかし、私はそれがあまりにも簡単になると思いました。だから、私は彼らが通常いるコンテキストを考慮し、xの隣のLineの長さを見つけるのが適切だと判断しました。 ascii 'lines'の図と、単一の 'x'および潜在的にジャンク文字を含む文字列入力が与えられた場合、 'x'が直接隣接する唯一の行の長さを出力します。 例 入力: | | |x | | 出力: 5 入力: |\ | \x | \ |___\ 出力: 4 入力: Diagram of a Wobbly Line: IRRELEVANTTEXT____ ____ ____/ \___/ X ;) x 出力: 3 入力: ______________ / ____________ \ |/ __________ \| ||/ ________ \|| …

7
セスティナの青写真
セスティーナは、我々が生成できることは興味深いパターンを次の詩の形式です。それぞれ6行の6つのスタンザがあり、最初のスタンザの各行の最後の単語が、連続した各スタンザの行末を設定パターンで回転させます。(3行のスタンザは終わりでもありますが、我々はその心配はありません。)エリザベス・ビショップ創造という名前の最初の3つのスタンザをご覧くださいセスティーナを: 9月の雨が家に降ります。 失敗した光の中で、おばあさん は台所で リトルマーベルストーブのそばに座って 、年鑑の冗談を読んで、 笑って話をして涙を隠します。 彼女は、彼の彼岸の涙 と家の屋根に降りかかる雨の 両方が年鑑によって予告されて いたが、祖母にしか知られていないと考えている。 ストーブの上で鉄瓶が歌います。 彼女はパンを切って子供に言います 今はお茶の時間です。しかし、子供 は湯沸かし器の小さな激しい涙 が熱い黒いストーブの上で狂ったように踊るのを見て 、雨が家で踊らなければならない方法です。 片付けて、おばあさん は賢い年鑑を切る ... 各行が「家」、「祖母」、「子供」、「ストーブ」、「年鑑」、または「涙」の6つの単語のいずれかで終わることに注意してください。それだけでなく、単語は前のスタンザと比較してパターン6–1–5–2–4–3で順序付けられます。最終的にはスパイラルのように見えます。 プログラムで完全なsestinaを生成するのにはまだ数年かかりますが、各スタンザの終了ワードを適切な順序でフィーチャーしたテンプレートを作成できます。これらのルールに従って、6行で終わる単語が与えられた場合に、sestinaの設計図を出力するプログラムまたは関数を作成します。入力の期待される結果は次のhouse grandmother child stove almanac tearsとおりです。 house grandmother child stove almanac tears tears house almanac grandmother stove child child tears stove house grandmother almanac almanac child grandmother tears house …

10
簡単な番号体系
簡単な番号体系についてお話ししましょう。(この挑戦のためだけに作り上げました) このシステムは、機能が含まれています()、[]、{}、と<>。 1。 () いつ ()引数が指定されていないは、と評価され0ます。 いつ ()1つ以上の引数が与えられた、引数の合計に評価されます。 2。 [] いつ []引数が指定されていないは、と評価され-1ます。 いつ [] 1つ以上の引数が与えられ、それは第一引数マイナス他の引数の合計に評価されます。 3。 {} いつ {}引数が指定されていないは、と評価され1ます。 いつ {} 1つ以上の引数が与えられ、それは、これらの引数の積に評価されます。 4。 <> いつ <>引数が指定されていないは、と評価され1ます。 いつ <> 1つ以上の引数が与えられ、それは、他の引数の積で割った最初の引数の整数に評価します。 あなたのタスク この単純な数値システムで有効な数値を含む文字列(つまり、角括弧のバランスが取れていること、0による除算がないことなど)が指定されている場合、その値を出力します。 テストケース () -> 0 (()()) -> 0 ([][]) -> -2 ({}<>) -> 2 ({}[]) -> 0 [] -> -1 …

7
投稿のマークダウンテンプレートを生成する
あなたのタスクは簡単です:入力を一切受けず、次のようなものを出力するプログラム(または関数)を書きます。 ## *name*, *length* bytes *code* ここ*name*で使用している言語の名前*length*、コード内のバイト数、および*code*プログラムのソースコードです。*code*複数の行が含まれる場合、各行の前に4つのスペースがあります。 Python 3での124バイトの実装例は次のとおりです。 s = "## Python 3, 124 bytes{2} s = {1}{0}{1}{2}print(s.format(s,chr(34),chr(10)))" print(s.format(s,chr(34),chr(10))) 出力は次のとおりです。 ## Python 3, 124 bytes s = "## Python 3, 124 bytes{2} s = {1}{0}{1}{2}print(s.format(s,chr(34),chr(10)))" print(s.format(s,chr(34),chr(10))) Markdownでは次のとおりです。 Python 3、124バイト s = "## Python 3, 124 bytes{2} s = {1}{0}{1}{2}print(s.format(s,chr(34),chr(10)))" …
19 code-golf  quine 

22
アルファベットピラミッドを構築する
今日は、文字からピラミッドを構築します!最初の5文字の文字ピラミッドの例を次に示します。 最初の5文字を​​、間にスペースを入れて、最初に昇順、次に降順で書きます。 A B C D E D C B A 上記の行の最初の4文字についても同じことを行いますが、先頭に2つのスペースを追加します。 A B C D C B A A B C D E D C B A 最後の行が「A」になるまで同じ手順を繰り返します A A B A A B C B A A B C D C B A A B C D E …

3
アルファベットパターンマッチング
アルファベットのチャレンジがたくさんありました。このチャレンジでは、アルファベットチャレンジの出力が渡され、sizeにスケーリングされたパターンを出力する必要がありますN。 たとえばN=5、L-phabetが渡された場合: ABCDEFGHIJKLMNOPQRSTUVWXYZ BBCDEFGHIJKLMNOPQRSTUVWXYZ CCCDEFGHIJKLMNOPQRSTUVWXYZ DDDDEFGHIJKLMNOPQRSTUVWXYZ EEEEEFGHIJKLMNOPQRSTUVWXYZ FFFFFFGHIJKLMNOPQRSTUVWXYZ GGGGGGGHIJKLMNOPQRSTUVWXYZ HHHHHHHHIJKLMNOPQRSTUVWXYZ IIIIIIIIIJKLMNOPQRSTUVWXYZ JJJJJJJJJJKLMNOPQRSTUVWXYZ KKKKKKKKKKKLMNOPQRSTUVWXYZ LLLLLLLLLLLLMNOPQRSTUVWXYZ MMMMMMMMMMMMMNOPQRSTUVWXYZ NNNNNNNNNNNNNNOPQRSTUVWXYZ OOOOOOOOOOOOOOOPQRSTUVWXYZ PPPPPPPPPPPPPPPPQRSTUVWXYZ QQQQQQQQQQQQQQQQQRSTUVWXYZ RRRRRRRRRRRRRRRRRRSTUVWXYZ SSSSSSSSSSSSSSSSSSSTUVWXYZ TTTTTTTTTTTTTTTTTTTTUVWXYZ UUUUUUUUUUUUUUUUUUUUUVWXYZ VVVVVVVVVVVVVVVVVVVVVVWXYZ WWWWWWWWWWWWWWWWWWWWWWWXYZ XXXXXXXXXXXXXXXXXXXXXXXXYZ YYYYYYYYYYYYYYYYYYYYYYYYYZ ZZZZZZZZZZZZZZZZZZZZZZZZZZ 次を出力する必要があります。 ABCDE BBCDE CCCDE DDDDE EEEEE 説明のためにABCD、完全なアルファベットではなく、のみを使用します。 L-phabet(上記)と次のパターンを一致させる必要があります。 単一行: ABCD or A B C D 単一行の繰り返しN回数 ABCD or AAAA ABCD BBBB ABCD …

9
バランストリプレットブラケット
「トリプレットブラケット」(このチャレンジのために作成した)は、次のいずれかです。 (...+...) [...:...] {...|...} <...-...> バランスのとれたトリプレットブラケット文字列(略してBTBS)は、空の文字列、2つのBTBSが連結されている、または上記のトリプレットブラケットのいずれか...がBTBSに置き換えられたものです。 あなたの仕事は、それだけで構成される文字列の(+)[:]{|}<->バランスが取れているかどうかをチェックするプログラムまたは関数を書くことです。最短のコードが優先されます。 例 プログラムは、次の文字列に対して真実を返す必要があります。 (+)(+)(+) [[[:]:]:(+(+))]{<->|<(+)->[:]}(+) <<<<<<<<<<<<->->->->->->->->->->->-> {|(+[:<-{|(+[:<->])}>])} [[[:]:[:]]:[[:]:[:]]] {[:](+)|<->{|}}[(+)<->:{|}(+)] プログラムは、次の文字列に対して偽を返す必要があります。 :[ <|> (+(+) [:][:](+[[:]):] {|{|{|(+{|{|{|}}}}}+)}[:]{|} {{||}} <<->-<->-<->> [(+):((+)+)+(+(+))] <<<<<->->->->->->

24
グリッドASCIIアートコードゴルフ
チャレンジ 要件を満たす最短のプログラムを作成する 必要条件 コードは次のように0の5x5グリッドを生成する必要があります。 00000 00000 00000 00000 00000 コードは入力(列、行、文字)を受け入れる必要があります。グリッドはそれに応じて変更する必要があります。 開始: 00000 00000 00000 00000 00000 入力: (2,5,*) 出力: 0*000 00000 00000 00000 00000 (注:左下隅の位置は1,1です。) 行/列の入力が(それはグリッドではない限り)これはあなたの選択の任意のメッセージとすることができる1,2,3,4、または5でない場合、プログラムはそう、グリッド以外のエラーメッセージを返す必要があります0です許容可能なエラー出力。 プログラムは(USキーボードの)すべての印刷可能なASCII文字で動作する必要があります。 勝者 勝者は、最短のコードを持ち、すべての要件を満たす人です。複数の回答が機能し、同じ(最短の)長さである場合、最初に回答した人が勝者になります。

30
その上に奇数が付いた小さな山のチェーンを表示します!
最初の行はceil(n/2)、各要素が次の要素で構成される:<space><odd-number><space> 2行目はceil(n/2)要素で構成されていますが、各要素は/ \唯一のものです。 あなたは取ることができるn >= 0とn <= 10。 例 入力:3 1 3 / \/ \ 入力:10 1 3 5 7 9 / \/ \/ \/ \/ \ Python 3の例、103バイト: lambda a:print("".join([" "+str(i)+" "for i in range(1,a+1,2)]+["\n"]+["/ \\"for i in range(1,a+1,2)])) バイト単位の最短コードが勝つ:)

13
ドラゴンカーブを描く
今日のタスク:ドラゴンカーブを描く! 場合は、あなたがドラゴンカーブがあるかわからない、ここに入門ViHartビデオです(本当にクールな、見てください!) あなたの仕事:ドラゴンカーブを描き、少なくとも9回繰り返します。1〜9の反復を表示する必要はありません。(少なくとも)9つの反復を完了した後に生成される最終曲線を表示するだけです。曲線は、曲線上の点を結ぶ直線として描画する必要があります。出力は、9回以上の繰り返し(反射、回転、スケーリング、線幅、線の色、背景色の変化まで)を示す以下の画像のいずれかに一致する必要があります。出力は、個々の行とそれらが形成する「ボックス」を互いに区別できるほど十分に大きくなければなりません。曲線内で2本の線が交差しない場合、それらは出力の同じピクセルまたは隣接するピクセルを占有してはなりません(それらの間に背景のピクセルが少なくとも1つ表示されている必要があります)。画像を画面に表示するか、画像をファイルに保存することができます。出力はグラフィカルでなければなりません-ASCIIアートにすることはできません。 ただし、バイト単位の最短コードが優先されますが、ライブラリのディレクティブをバイトカウントに含めることはできません。また、投稿前に記述されている場合は、選択した言語用に記述されたグラフィックライブラリまたはその他のライブラリを使用できます。 プログラムの出力の画像を含めてください。 ビデオを視聴した場合は、この段落をスキップしてください。ビデオを視聴しないことにした人のために、ドラゴンカーブの最初の12回の繰り返しを以下に示します。このタスクの目的上、ドラゴンカーブは次のルールによって生成されるカーブです。現在のカーブの終点を取得し、その終点を中心に90度回転した2つ目のカーブを作成して、オリジナルの終点が曲線は新しい曲線の開始点であり、2つの曲線を結合してそれらが交わる単一の曲線にします。以下に示す画像では、各反復の終点を中心に前の反復を時計回りに90度回転させることにより、新しい反復がそれぞれ生成されます。曲線が画面に表示されるとき、どの終点が「終点」としてカウントされるかは明らかではありませんが、曲線が点の配列として格納される場合、「終点」を最後の点として定義するのは簡単です配列。 アスキーアートは高く評価されていますが、受け入れられていません。これはアスキーアートではなく、グラフィック出力です。

6
映画タイトルスタイルの文字列
チャレンジ ゆっくりと広がる文字の間に大きなギャップがある映画の予告編タイトル(つまり、火星、インターステラーなど)を見たことがありますか? 課題は、文字間に適切な量のスペースを挿入することにより、文字列、ギャップ乗数、および方向を指定してこの効果を再現することです。 例 入力:「INTERSTELLAR」、ギャップ乗数:1.0、方向:内向きに増加 Output: I N T E R S T E L L A R 間隔は次のとおりです:[1、2、3、...、3、2、1]; スペースを「。」に置き換えます 間隔をよりよく示すために: I.N..T...E....R.....S......T.....E....L...L..A.R 入力:「INTERSTELLAR」、ギャップ乗数:0.5、方向:内向きに増加 Output: IN T E R S T E L L AR 間隔に0.5が乗算されるため、整数除算から[0、1、1、2、... 2、1、1、0]が得られます。「。」を使用: IN.T.E..R..S...T..E..L.L.AR 入力: 'CODEGOLF'、ギャップ乗数:2.0、方向:外側に向かって増加 Output: C O D E G O L F 間隔は2倍され、外側に向かって増加するため、[8,6,4,2,4,6,8]が得られます。「。」に置き換えます: C........O......D....E..G....O......L........F …

16
(KevinC's)三角DeciDigitsシーケンス
入力: 正の整数Nです1 <= n <= 25000。 出力: このシーケンスでは、10進数の1 / nから始めます。 次に、コンマ(1インデックス)の後のn番目の桁までの桁の合計を取得します。その後に(n -1)番目までの数字の合計が続き、次に(n -2)番目まで、などです。nが1になるまで続けます。 出力は、これらすべてを組み合わせた合計です。 例えば: n = 7 1/7 = 0.1428571428... 7th digit-sum = 1+4+2+8+5+7+1 = 28 6th digit-sum = 1+4+2+8+5+7 = 27 5th digit-sum = 1+4+2+8+5 = 20 4th digit-sum = 1+4+2+8 = 15 3rd digit-sum = 1+4+2 = …

9
ASCIIボックスを描画します
非負整数の2つのリストを取得し、以下で定義されているようにASCIIボックスを出力します。 コーナーと交差点はプラスです:+(ASCIIコード43) 縦線はバー|(ASCIIコード124) 水平線はマイナス-(ASCIIコード45) 最初の入力リストは、各プラス記号の間の水平方向のマイナス数を指定します。 2番目の入力リストは、各プラス記号の間にある垂直方向のバーの数を指定します。 いくつかの例で説明する方が簡単です: 0 // No minuses between each + sign 0 // No bars between + signs ++ ++ ------------------ 1 2 // First a single minus, then two minuses 1 2 // First one bar, then two bars +-+--+ | | | +-+--+ | …

27
8は無限大になるはずです[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 2年前に閉店。 通常8つの反復を実行する典型的なループを見てみましょう。 for (int x=0; x<8; ++x); あなたはそれを無限にしなければなりません! このような形式のループをサポートするすべての言語の人気コンテストですfor。したがって、最高得点(マイナスからマイナス)のソリューションが勝ちます。 あなたの言語が他の形式のforループを持っているが、あなたが確信しているなら、あなたはそれで何かクールなものを作ることができます。私は利用可能な構造と言語の範囲を拡大する権利を留保しますが、縮小されることはありませんので、以前は正しいソリューションを落とすことを恐れないでください。 ソリューションとは何ですか? ソリューションは2つのプログラムで構成されます。 最初のプログラムはクリーンプログラムです。これは、forループが8回繰り返される、お使いの言語の典型的なプログラムです。それは通常のプログラムでなければならず、開発者なら誰でも書くことができます。準備のための特別なハッキングはありません。例えば: int main() { for (int x=0; x<8; ++x); return 0; } 2番目のプログラムが拡張されます。このプログラムには、クリーンなプログラムからのすべてのコードといくつかの追加コードが含まれている必要があります。拡張ポイントの数には限りがあります。詳細については、完全なルールセクションをご覧ください。上記のクリーンなプログラムの拡張プログラムは inline bool operator < (const int &a, const int &b) { return true; } int main() { for (int x=0; x<8; ++x); return …

30
特定の範囲の数値を含む整数の数
プログラムは、入力に数は、範囲の開始と終了の間で表示されますどのように多くの整数の数、範囲の開始と範囲の終了、および出力取るべき包括的に。プログラムと機能の両方が許可されます。 入力例 例えば: //Input example 1 3,1,100 //Input example 2 3 1 100 //Input example 3 3 1 100 //Input example 4 a(3, 1, 100); 上記の4つの入力例はすべて有効であり、それらはすべて3問題の数値で1あり、範囲の始まりと範囲100の終わりを意味します。 そして、プログラムは、出力が何回必要がある3の範囲で表示されます1への100 包括的。3整数に表示されます3、13、23、30、31、32、33、...、9319回の合計で。だから、プログラムを出力すべき19出力としてそれが何回かあるので、3の範囲で表示されます1まで100。 ルール プログラムと機能の両方が許可されます。 すべての数字がありますことを意味し、整数になりませんいずれであってもfloatSまたはdoubleS。 注:求められる数は常にの範囲になります0≤x≤127。この範囲外になる場合はありません0≤x≤127。 最初の例のように、ケースがの場合33、数3は2 回ではなく1回だけ表示されるとカウントされます。 範囲の開始と終了の値はの間になります-65536し、65535包括的。 範囲の開始値は、範囲の終了値を超えることはありません。 start < end また、範囲は包括的です。たとえば、入力がの8 8 10場合、範囲はになり8≤x≤10、したがって出力は1になります。 入力は、例に示されている方法のいずれかで取得できます。入力は、任意の方法で文字列または数値として取得できます。 テストケース 3 1 100 19 3 3 …

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