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

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

6
Unixタイムスタンプからの経過時間を示す最短のスクリプト
この課題を克服するために必要なことは、特定のUnixタイムスタンプとスクリプトが実行される時間との間の数十年、年、週、日、時間、分、秒の数を出力する最短の「timeago」スクリプトを記述することです。 あなたは、例えば、「最低条件」の時間差を与えなければなら1 weekない7 days、9 yearsではありません0 decades 9 years。また、1 daynotなど、複数形も正しく使用する必要があります1 days。 スクリプトは、±1秒以内で正確でなければなりません(そのため、正確な2番目の丸め方法は重要ではありません)。 Time Equivalency Table 1 decade = 10 years 1 year = 31536000 seconds (not technically correct but close enough) 1 week = 7 days 1 day = 24 hours 1 hour = 60 minutes 1 minute = 60 seconds …
9 code-golf  date 

4
森の小道
悲惨なカヌーに乗った後、川の急流の終わりに滝から落ちてしまいました。あなたのカヌーは爆発しましたが、あなたはなんとか爆発を生き延びました。しかし、あなたの川の旅は完全に地図から外れました-あなたは今、森の真ん中で迷いました。幸い、あなたはまだプログラミングスキルを持っているので、プログラムをツリーの側面に切り分けて、森を抜ける方法を見つけることにしました。ただし、ツリーには表面積があまりないため、プログラムをできるだけ短くする必要があります。 フォレストは、nby n(n > 5)の正方形の文字で表すことができ、小文字のみで構成されますa-z。フォレストの例: anehcienwlndm baneiryeivown bnabncmxlriru anhahirrnrauc riwuafuvocvnc riwnbaueibnxz hyirorairener ruwiiwuauawoe qnnvcizdaiehr iefyioeorauvi quoeuroenraib cuivoaisdfuae efoiebnxmcsua このフォレストでは、a左上隅から右下隅に向かって斜めに文字のラインが走っていることにお気づきかもしれません。これは、森を通る「道」であり、それをたどるとどこかにあなたを導きます。あなたの仕事は、特異な経路を見つけるプログラムを書くことです。ここで、この課題で「パス」を意味するものをより具体的に説明します。 この課題での「パス」は、ブレゼンハムアルゴリズムで生成された可能性があるものに類似したラインとして定義されますが、次の追加要件があります。 行の長さは6文字以上にする必要があります 行内の同一直線上にある(完全に隣接する)文字のグループはすべて同じ長さでなければなりません。 フォレストの一方の端で始まり、反対の端で終わります(詳しくは、私のコメントを参照してください) 2番目の要件をより明確に説明するには、次の行を検討してください。 aaa aaa aaa aaa aaa この行は、同一線上にある文字の「セグメント」で構成されており、各セグメントは正確に3文字です。パスとみなされます。今、この行を考えてみましょう: a aa a aa a aa この行は、すべて同じ長さの文字ではない同一線上の「セグメント」で構成されています(一部は1文字で、一部は2文字です)。したがって、これはパスとしての資格はありません。 フォレストのマップが与えられたプログラムは、パスで使用されている文字を識別します。入力は、都合のよいもの(たとえば、コマンドライン引数、STDIN prompt()など)を使用します。変数に事前初期化することはできません。入力の最初の部分は、nフォレストのサイズを表す単一の整数です(フォレストは常に正方形です)。その後はスペースで、次にフォレスト全体が単一の文字列になります。たとえば、サンプルのフォレストは、次のように入力として提示されます。 13 anehcienwlndmbaneiryeivownbnabncmxlriruanhahirrnraucriwuafuvocvncriwnbaueibnxzhyirorairenerruwiiwuauawoeqnnvcizdaiehriefyioeorauviquoeuroenraibcuivoaisdfuaeefoiebnxmcsua この出力は次のようになります。 a パスは文字を使用して形成されているためaです。フォレスト内のパスは1つだけです。これはコードゴルフなので、最低数のキャラクターが勝ちます。質問がある場合は、コメント欄で質問してください。

3
ロッドを数える; ロッドを数える
いくつかの背景 カウンティングロッドは小さな棒(長さ3〜14 cm)で、2000年以上にわたって多くのアジアの文化の数学者が整数または分数を表すために使用していました。(ただし、このchqllengeでは、符号なし整数に焦点を当てています)ロッド番号と呼ばれるバージョンも作成されました。 仕組みは次のとおりです。 (いつか混乱した場合は、各桁のASCII表記と、下部に含めたいくつかの例を確認してください) ロッド数字は、1〜9の数字と0の空白を持つ真の位置数字システムです。数字は水平線と垂直線で構成されます。行が多いほど、桁が高くなります。5を超えたら、水平線を上に配置して、下の行数に5を追加します。1本の垂直線は1、2本の垂直線2、5本の垂直線は5、5本の垂直線は上部に水平線があり、4本の垂直線は上部に水平線が9(最上位桁)です。 縦3桁: ||| ||| ||| ||| ||| ただし、ロッドの数字を読みやすくするために、交互の数字ごとに異なる表記法を使用しています。2番目の表記は、水平線と垂直線の役割を入れ替えます。したがって、3は3本の水平線で、8は垂直線が上にある3本の水平線で表されます。 横8桁: | | __|__ _____ _____ 先に述べたように、どちらの表記を使用するかは簡単ですが、これらは交互に使用され、Sun Tzuは「1つは垂直、10つは水平」と書いています。したがって、右端の数字は垂直であり、そこから交互になります。 チャレンジ これらの棒は、負の数と分数を表すために使用されました(それらに関するウィキペディアの記事で説明されています)。この課題では、正の整数のみに焦点を当てますが、目的は単純です: 何らかの方法で整数値を入力として受け取り、この整数のロッド数値表現をSTDOUTに出力する関数または完全なプログラムを記述します(うまくいく場合は、ファイルに書き込むこともできます)。バイト単位の最短コードが優先されます。 すべての数字は5x5のASCII文字で表され、5つのスペースで構成される2つの列で区切られます。各桁に使用する正確な表現は次のとおりです。 space between two digits (two colums): 0 digit, both vertical and horizontal (five columns): 1 digit, vertical: | | | | | 2 digit, vertical: …

3
Loopyソリューションの検証
これは、ルーピーパズルチャレンジを生成するための追加のチャレンジです。前のリンクのより難しいチャレンジを試みる前に、このチャレンジを解決することをお勧めします。 この課題の目標は、ルーピーパズルのソリューションを検証することです。前のリンクからルーピーパズルが何であるかに関するすべてのドキュメントを入手してください。解決されたルーピーパズルは、「ルーピーパズルの生成」チャレンジへの有効な提出の出力と非常に似た方法でフォーマットされ、次のようになります。 +-+-+ +-+ +-+ + | | | |2|3| +-+ + + + + +-+ 2| | | |2| 3| + + +-+ + + +-+ 2| 2 1|3| | +-+ +-+ +-+ +-+ |2 | | 1 2| + +-+ +-+ +-+ + | |2 1 2|3|3| | …
9 code-golf 

4
文字列のチューニング
仕事 所定の周波数にチューニングされ、所定のポイントで押し下げられたストリングの、チューニングのずれたセント数とともに、発音されたノートを決定するプログラムを記述します。 簡単にするために、生成される音の周波数と、押された場所の右側の弦の長さが反比例していると仮定します。 注:このタスクでは、基音のみを扱い、倍音やその他の倍音は扱いません。 入力 プログラムには2つのデータが渡されます。 問題の文字列を表す、任意の長さの文字列。このストリングは、ストリングが押されるべきXでマークされます。 [-----] is a string divided in six sections (five divisions). [--X--] is a string pressed at the exact center of the string. [X----] is a string pressed at 1/6 the length of the string. (Length used is 5/6) [-X--] is a string pressed …

3
1つの立方体をいくつの立方体にカットできるかを計算します
残りの部分なしで、より小さな立方体にカットできる立方体を想像してみてください。 立方体をいくつの立方体に切り取ることができるかを調べます。 たとえば、立方体は8、27(明らかに整数の3乗)および20(19の小さい立方体に他の立方体の8倍のサイズを加えたもの、画像を参照)に切り分けることができます。 ここでいくつかのヘルプを参照してください:http : //mathworld.wolfram.com/CubeDissection.html プログラムは、整数n(0 <= n <= 1 000)を入力として受け取りn、キューブをその数のキューブにカットできるように、以下のすべての数値を出力する必要があります。立方体を1つの立方体にカットでき、0の立方体にカットできないとします。 使用できるのは、64ビット以下のサイズの(配列、オブジェクトなどではなく)整数データ型のみです。最短のコードが勝ちます。

6
順列番号付け
チャレンジ n個の整数の特定のセットについて、辞書式インデックスを出力するプログラムを記述します。 ルール 入力は、スペースで区切られた一意の非負の整数のセットでなければなりません。 順列の辞書式インデックス(範囲0〜n!-1を含む)を出力する必要があります。 順列ライブラリまたは順列ビルトインは使用できません。 インデックスの検索に役立つように、入力の順列のセットまたは順列のサブセットを生成することはできません。 また、指定された順列を次または前の(辞書式に)順列にインクリメントまたはデクリメントすることもできません。 階乗を使用せずにこれを完了する方法が見つかった場合、ボーナスポイント(-10バイト)。 n = 100の場合、実行時間は1分未満である必要があります バイト数による最短コードの勝ち 火曜日に選ばれた勝者(2014年7月22日) 順列の詳細 http://www.monkeyphysics.com/articles/read/26/numbering_permutations.html 順列グループ操作 http://lin-ear-th-inking.blogspot.com/2012/11/enumerating-permutations-using.html 例 0 1 2 --> 0 0 2 1 --> 1 1 0 2 --> 2 1 2 0 --> 3 2 0 1 --> 4 2 1 0 --> 5 0 …

6
バイナリツリーの最も深いノードを見つける
バイナリツリーを入力として受け取り、最も深いノードとその深さを出力するプログラムを記述します。同点の場合は、関連するすべてのノードとその深さを出力します。各ノードは次のように表されます。 T(x,x) T(x) T ここTで、は1つ以上の英数字の識別子であり、それぞれxが別のノードです。 バイナリツリーの簡単な定義を次に示します。 バイナリツリーの先頭にはノードがあります。 バイナリツリーのノードには、最大で2つの子があります。 たとえば、入力A(B(C,D(E)))(以下)はを出力します3:E。 次のツリーは5、11、4の間の3方向のつながりであり、その深さも3(0から開始)です。 入力2(7(2,6(5,11)),5(9(4)))(下記)はを出力します3:5,11,4。 これはコードゴルフなので、バイト単位で測定された最も短いコードが優先されます。

24
Z_nのグループテーブルを生成する
グループは数学で広く使用されている構造であり、コンピュータサイエンスでの用途があります。このコードの課題は、追加グループZ nのグループテーブルを作成するための文字数が最も少ないことです。 テーブルの構成方法:Z nの場合、要素は{0、1、2、...、n-1}です。テーブルにはn行とn列があります。テーブルのij番目のエントリの場合、値はi + j mod nです。たとえば、Z 3では、1〜2番目のエントリ(開始行/列を1と数えると2行目、3列目)は(1 + 2)%3 = 0です(サンプル出力を参照)。 入力:正の整数、n 出力:上記のように構成され、サンプル出力で以下に示すように表示される、Z nのテキスト表示である表。スペースはオプションです 入力例: 3 出力例: 0 1 2 1 2 0 2 0 1 入力例: 5 出力例: 0 1 2 3 4 1 2 3 4 0 2 3 4 0 1 3 4 0 1 …

4
次の「興味深い」時間を見つける
私はたまたま今日の時計をちょうど11:11:11にちらりと見ました(そして、今日は1/11です。2011年ではありませんが、残念ですが)。これでコードゴルフの質問をしなきゃ!私はハトです。 とにかく、あなたの課題は、時間、分、秒を入力として取り、次の「興味深い」時間を出力することです。ここでは、これらのステップとして興味深いものを定義します。 時間、分、秒を連結します。(たとえば、4:14:14の場合、これは41414になります。) 文字列全体の長さにまたがる1つ、2つ、または3つの連続したグループを確認します。たとえば、[41][41][4]時間の例で見つけることができます(グループが文字列を介して到達できない場合は、この例で行ったように切り取ってください)。別の例:質問の冒頭に私の最初の例では、時間では、それは次のようになり[1][1][1][1][1][1]、[11][11][11]または[111][111]。 文字列全体を通る連続したグループはありますか?もしそうなら、時間は「興味深いです!」そうでなければ、そうではありません。 入力は適切な形式にすることができますが、ハードコードしてはいけません。出力は適切な形式にすることもでき、入力と同じ形式にする必要はありません。 何らかの理由でネットワークアクセスを使用する場合、ネットワークからダウンロードされたすべてのバイトがスコアにカウントされます。 これはコードゴルフです。バイト単位の最短コードが優先されます。
9 code-golf  date 

2
Stack Exchangeのコードスニペットをバックシック化する
あなたの目標は、次のような任意のテキストを入力することです。 This is some text 次のように、Stack Exchangeで投稿(SE風味のマークダウン)とコメント(ミニマークダウン)のコードとしてフォーマットされたテキストを出力します。 `This is some text` `This is some text` ただし、注意が必要です。入力を検討してください: Perl has a variable called $` 出力は `` Perl has a variable called $` `` `Perl has a varaible called $\`` 書式設定の完全なルールは次のとおりです。 完全な投稿(完全なSE Markdown) ステップ1:文字列内に連続するバックティックが正確に存在しない最小数をカウントします。これを呼びましょうn。(例えば、文字列potato、n1であるためthis is a backtick: `、n2であり、そしてために` `` ``` ````` ``````、n4です。) 手順2:文字列をnバッククォートで囲みます。文字列がバックティックで開始または終了する場合も、スペースで囲む必要があります。(例えば、potatoなる`potato`、this …
9 code-golf 

8
ミッシーエリオット、XKCD、ASCIIバイト
次のXKCDコミックに触発されました。 Missy Elliotの「Work It」では、コーラスの一部は次のようになっています。 Is it worth it, let me work it I put my thing down, flip it and reverse it それを念頭に置いて、私は次のコードゴルフチャレンジを提案します。 次の順序で実行するコードを作成します。 STDINから8ビットASCII入力を受け取ります。例n(Hex 6E、またはBin 01101110) 1ビットレベル(私はそれはビット単位のシフトダウンと呼ばれると信じて)、例えばダウンシフトの各バイトの8ビットが01101110なり00110111(「私の事を下に置きます」); 例えば、各バイトのビットを反転させ00110111となり11001000(「それを反転」); 各バイトのビットを反転します。たとえば、次のように11001000なります00010011 (「反転」)。 バイトの値が32未満の場合、ASCIIに変換する前に、バイトに対してを実行します(95 + [byte value])。つまり、(126-(31-[byte value]))バイトの値が32未満の場合は、手順5を繰り返します。 バイトの値が126より大きい場合は、ASCIIに変換する前にバイトに対してを実行します([byte value] - 95)。つまり、(32+([byte value]-127))値が126より大きい場合は、手順6を繰り返します。 新しく変換された文字列をASCIIとして表示します。 実際のこのコードの例: (入力、それは価値がありますか?) workit missy (「missy」が入力、「workit」が関数です) 舞台裏... (私にそれを働かせてください...バイナリに) 01101101 …

13
文字を数え、それらを暗号に変えます
問題: 次のことを行うプログラムを作成する必要があります。 小文字のテキストの大きな文字列を受け取り、各文字の出現をすべてカウントします。 次に、文字を出現回数の多い順に並べます。 次に、そのリストを取得して、テキストのエンコーダー/デコーダーに変換します。 次に、その暗号でテキストをエンコードします。 理解しにくい?この例を見てください: 例: 入力テキスト: ロレム・イプサム・ドーラーは座り心地がよく、僧侶は外交的エリートです。Nunc sed dui at nisi euismod pellentesque ac sed enim。Nullam auctor justo quis diam faucibus、eu fringilla est porttitor。Pellentesque vel pharetra nisl。前庭は、ウルトリス・マグナとフランギラを争う。クィスクポーティター、リサスsuscipit pellentesque tristique、orci lorem accumsan nisi、sclerisque viverra turpis metus sit amet sapien。Fusce facilisis diam turpis、nec lobortis dui blandit nec。前庭ac urna ut …
9 code-golf 

2
15パズルが解けるかどうかを確認する
15パズルは、配列の半分だけの可能な状態が解けるあることに特有のものです。14タイルと15タイルを反転させると、ブロックをスライドさせて元に戻すことができません。 あなたの仕事は、タイルの配置の状態を表す、選択した形式の整数のリスト(0から15までの各数値のインスタンスを1つだけ含む)を受け入れるプログラムを構築することです。 4x4グリッド。グリッドが解決可能かどうかを決定する単一のブール値を出力します。 これをあらゆる言語で行うための最短のコードが優先されます。

5
printfスタイルの文字列フォーマット
チャレンジ C printfスタイルの文字列フォーマットを実装する関数を記述します。 ルール あなたは必要があり、少なくとも実装%%、%c、%s、%dと%f。 あなたはいけません、組み込みの文字列の書式設定の方法を使用します。 あなたはしてはならない外部プログラムを実行したり、あなたのプログラムからインターネットに接続します。 無効な入力の処理方法はユーザーが決定しますが、プログラムが異常終了してはなりません。 あなたはすべき書く可変引数機能を可能な場合。 このドキュメントのキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「MAY」、および「OPTIONAL」は、RFC 2119で説明されているように解釈されます。

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