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

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

30
IPアドレスかどうか?
ネットワークスキャンツールは、入力についてうるさくうるさいので、不適切な文字を含むIPv4アドレスまたは適切にフォーマットされていないIPv4アドレスを入力すると、すぐにクラッシュします。 IPv4アドレスは、ピリオドで区切られた4つの数字として記述された32ビットの数値アドレスです。各番号は0〜255にできます。 これらのクラッシュを回避するために、入力を事前検証するツールを作成する必要がありますが、特定のツールには注意が必要です。有効な形式はa.b.c.d、a、b、c、dのようになります。 先行ゼロなしの0自然数または自然数を指定できます。 0から255の間(両端を含む)でなければなりません。 必要がありませんのような特殊な記号含まれ+、-、,、などを。 10進数でなければなりません(基数10) 入力:文字列 出力:TruthyまたはFalseyの値(任意の値も受け入れられます) テストケース: Input | Output | Reason | | - 1.160.10.240 | true | - 192.001.32.47 | false | (leading zeros present) - 1.2.3. | false | (only three digits) - 1.2.3 | false | (only three digits) - 0.00.10.255 | false …

23
交通方向
ルール ISO3166-1-Alpha-2国コードが与えられた場合、あなたの仕事はその国の交通の方向を決定することです。 入力は有効な国コードになります(それは、提供されている2つのリストの要素であるため有効です)。 入力が役立つ場合は、文字列ではなく2文字のリストにすることができます 小文字で入力することを選択できます 1つの値を選択します(正しい場合)(その国のトラフィックが右利きである場合、および他の場合はそれ以外の場合はその値を出力します) これらのリストのいずれかに含まれる国コードのみを処理する必要があります。 これらは、トラフィックが左利きのすべての国です。 ['AI', 'AG', 'AU', 'BS', 'BD', 'BB', 'BM', 'BT', 'BW', 'VG', 'BN', 'KY', 'CX', 'CC', 'CK', 'CY', 'DM', 'FK', 'FJ', 'GD', 'GG', 'GY', 'HK', 'IN', 'ID', 'IE', 'IM', 'JM', 'JP', 'JE', 'KE', 'KI', 'LS', 'MO', 'MW', 'MY', 'MV', 'MT', 'MU', 'MS', 'MZ', 'NA', …

30
シンプルなストップウォッチを実装する
チャレンジ あなたの仕事は、プログラムを作成することです。プログラムは、1秒に1回(プログラムの開始時を含む)、プログラムが開始されてからの経過時間を出力します。 ルール 時間はhh:mm:ss形式で印刷する必要があります。(1桁の値の場合は先行ゼロ) タイムスタンプは、CR、LF、またはCRLFで区切る必要があります。(先頭に空白がない) 毎秒新しい時間が表示されなければなりません。(stdoutは1秒間バッファリングできません) 23:59:59を過ぎて実行された場合のプログラムの動作は未定義です。 sleep(1)印刷、計算、ループなどのオーバーヘッドが1秒に累積するたびに特定の1秒がスキップされる場合でも使用できます。 出力例: 00:00:00 00:00:01 00:00:02 00:00:04 00:00:05 ⋮ 00:00:03処理のオーバーヘッドのためにここにないことに注意してください。実際にスキップされた値(もしあれば)は、もちろん実装やシステムに依存します。 Cでの参照実装:(POSIX互換システムのみ) #include <unistd.h> // sleep() #include <tgmath.h> #include <assert.h> #include <stdlib.h> #include <stdio.h> #include <time.h> #ifndef __STDC_IEC_559__ #error "unsupported double" #endif static_assert(sizeof(double) == 8, "double must have double precision"); #define MAX_PRECISE_DOUBLE ((double)(1ULL << 52)) …
25 code-golf  date 

17
私の愚かな古い目覚まし時計をシミュレート
私は2つのボタンを持つ愚かな古い目覚まし時計を持っています:hourとminute。このhourボタンは、設定されたアラームの時間を増やし、設定されたアラームminuteの分の時間を増やします。ただし、一部のスマートデザイナーは、両方のボタンを同時に押すことには意味があることに気付き、and hourをminute同時に押すとアラームが12:00 am/ に設定されると判断しました0:00。あなたの仕事は、この動作をシミュレートすることです。 仕事 開始時間と一連のボタン状態が与えられたら、終了時間を把握します。 開始時刻から開始して、の各出現ごとに時間を(1,0)増やし、の各出現ごとに分を増やし、の各出現ごとに(0,1)時間を設定します。どちらのボタンも押されていないことに対応するため、状態は無視する必要があります。0:00(1,1)(0,0) 分と時間に追加するときに、分/時間が最大値を超える場合、に設定し0ます。つまり、分の値を増やすと分値が59設定され、0時間の値を増やすと時間値が23設定され0ます。制限を超える分/時間値の増分は、他の値に影響しません。たとえば、10:59yields の分では10:00なく、yieldsの増分11:00です。 例 入力時間13:58とステップを考えると[(0,1),(0,1),(0,1),(0,0),(1,1),(1,0)]、 (0,1)。これはminute押されることに対応します。今が時です13:59。 (0,1)。これはminute押されることに対応します。今が時です13:00。 (0,1)。これはminute押されることに対応します。今が時です13:01。 (0,0)。これは、どちらのボタンも押されていないことに対応します。影響を受けない時間は今13:01 (1,1)。これは、両方のボタンが押されていることに対応します。今が時です0:00。 (1,0)これはhour押されることに対応します。今が時です1:00。 で終わるので1:00、それが出力です。 I / O 入力は、時間と一連のボタン状態で構成されます。出力は1回です。 入力時間と出力時間は 2組(hour, minute)または(minute, hour)中24など-hour時間(13, 30)(hourの範囲0へ23とminute範囲から0の59) 前しかしと同じ12-hour時間とブールam/ pmスイッチ(hourの範囲0に11、または12と1を11有するminuteから0の59)。 0:00810などの分数(0から1439まで) 同じ情報をエンコードするその他の形式 ボタンの状態のシーケンスは、ブール2タプルのリストの表現です。次に例を示します。 タプルのリスト: [(0,1),(1,0),(0,0),(1,1)] スペース区切りの文字列: "01 10 00 11" 文字列: "01100011" 第四紀に: [1,2,0,3] 整数に変換: 99 同じ情報をエンコードするその他の形式 テストケース time,steps -> output …
25 code-golf  date 

30
このコードは、* this *および* that *でエラーが発生しますが、実際にそれらに書き込まれていますか?
私はあなたが探している言語ではないことに触発されました! チャレンジ 2つの異なるプログラミング言語を選択し、次の行をstdout(または同等のもの)に出力するプログラムを作成します。 This program errors out in <the current language> :P そして、2つの言語のそれぞれで異なる種類のエラーを生成します。 ルール いくつかのルールは元のチャレンジから取られています。 出力では、言語名は次のとおりです。 記載されている名前TIO、必要に応じてバージョン番号および/または実装名を除いて、(あなたが使用している場合たとえばJavaScript (Node.js)、あなたの言語の一つとして、あなたが使用できるJavaScript言語名のために、ではありませんJSかJavascript。) 選択した言語がTIOで利用できない場合は、公式Webサイト(またはGitHubリポジトリ)のフルネーム。 どちらのプログラムもユーザーからの入力を受け付けません。 コメントはどちらの言語でも使用できます。 同じ言語の2つの異なるバージョンは、異なる言語としてカウントされます。 これを行うと、プログラムはメジャーバージョン番号を出力し、2つの異なるマイナーバージョンで実行している場合は、マイナーバージョンも報告する必要があります。 ビルド済みのバージョン関数を使用しないでください(これには、実行時にすでに評価された変数が含まれます)。 同じ言語の2つの異なるコマンドラインフラグも、フラグにコードフラグメントが含まれていない限り(C など)、このメタコンセンサスに従って異なる言語としてカウントされ-Dblahblah...ます。 これが行われた場合、プログラムは使用されたフラグも出力する必要があります。 2つのエラーは、両方のエラーが同じセマンティクス(「ゼロ除算」、「セグメンテーション違反」、「インデックス範囲外」など)によって生成されない限り、異なると見なされます。 言語のランタイムがエラー後に終了せず、何らかの方法でエラーをユーザーに報告する場合、それは有効なエラーです。 言語がエラーメッセージを識別しないが、エラーを引き起こす原因の既知のリストがある場合、エラーメッセージではなく理由を指定する必要があります。 例としては><>、エラーメッセージsomething smells fishy...が1つしかありませんが、esolangs wikiページにはエラーの理由のリストがあります。 呼び出しeval()などによって生成されない限り、構文エラーは許可されません。 手動で(throwJS)、raise(Python)、die(Perl)などを使用して何かをスローすることは許可されますが、それらはすべて1種類のエラーと見なされます。 2Dまたはgolflangsの無効なコマンドによるエラーも許可されます(1種類のエラーとして扱われます)。 例 PythonとRuby Python:This program errors out in Python :P標準出力、未定義識別子 Ruby:This program errors out …

6
ギムリ、もっと短くしますか?
私はギムリの著者の一人です。Cにはすでに2ツイート(280文字)のバージョンがありますが、どれだけ小さくできるかを確認したいと思います。 Gimli(論文、ウェブサイト)は、暗号化ハードウェアおよび組み込みシステムに関する会議(CHES)2017(9月25-28日)で発表される、高セキュリティレベルの暗号順列設計です。 タスク いつものように:Gimliの小さく使用可能な実装を、選択した言語で作成します。 することができるはず、入力として384ビット取る(...または48バイト、または12 unsigned int型の)とリターン(あなたは、ポインタを使用する場合は所定の位置に変更することができる)ギムリの結果は、これらの384ビットに適用されます。 10進数、16進数、8進数、または2進数からの入力変換が許可されます。 潜在的なコーナーケース 整数エンコードは、リトルエンディアンであると想定されます(たとえば、既にあるもの)。 名前を変更するGimliにGそれはまだ、関数呼び出しでなければなりません。 誰が勝ちますか? これはコードゴルフなので、バイト単位の最短回答が勝ちです!もちろん、標準ルールが適用されます。 リファレンス実装を以下に示します。 注意 いくつかの懸念が提起されました。 「ギャングさん、私のプログラムを他の言語で無料で実装してください。そうする必要はありません」(thx to @jstnthms) 私の答えは次のとおりです。 Java、C#、JS、Ocamlで簡単に実行できます。現在、我々(Gimliチーム)は、AVR、Cortex-M0、Cortex-M3 / M4、Neon、SSE、SSE-unrolled、AVX、AVX2、VHDL、Python3に実装(および最適化)しています。:) Gimliについて 状態 Gimliは、一連のラウンドを384ビット状態に適用します。状態は、次元3×4×32の平行六面体、または同等に、32ビットワードの3×4マトリックスとして表されます。 各ラウンドは、3つの操作のシーケンスです。 非線形層、具体的には各列に適用される96ビットSPボックス。 2ラウンドごとに、線形混合層。 4ラウンドごとに、一定の追加。 非線形レイヤー。 SPボックスは3つのサブ操作で構成されています。1番目と2番目の単語の回転。3入力の非線形T関数。そして、最初と3番目の単語の交換。 線形レイヤー。 リニアレイヤーは、Small-SwapとBig-Swapの2つのスワップ操作で構成されます。スモールスワップは、1ラウンド目から4ラウンドごとに発生します。ビッグスワップは、3ラウンド目から4ラウンドごとに発生します。 ラウンド定数。 ギムリには24ラウンド、24、23、...、1の番号が付けられています。ラウンド数rが24,20,16,12,8,4の場合、ラウンド定数(0x9e377900 XOR r)を最初の状態ワードとXORします。 Cの参照ソース #include <stdint.h> uint32_t rotate(uint32_t x, int bits) { if (bits == …

26
ジグザグパターンを作る
あなたの仕事は、1つの整数入力を取り、スラッシュとバックスラッシュを使用してジグザグパターンを印刷することです。 整数入力は、各ジグとザグの長さ、およびジグとザグの数を決定します パターンは常に右から左に始まります テストケース 4-> / / / / \ \ \ \ / / / / \ \ \ \ 2-> / / \ \ 0-> 1-> / 8-> / / / / / / / / \ \ \ \ \ \ \ \ / / / / …

8
トポロジを確認する
チャレンジ T有限集合のサブセットの集合が与えられたS={1,2,3,...,n}場合T、トポロジーかどうかを判断します。 説明 Powersetの P(S)一部のセットのはS、すべての部分集合の集合ですS。いくつかの例: S = {}, P(S) = {{}} S = {1}, P(S) = {{}, {1}} S = {1,2}, P(S) = {{}, {1}, {2}, {1,2}} S = {1,2,3}, P(S) = {{}, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}} トポロジー Tセット上でSのサブセットでありP(S)、以下の特性を有します: {}あり、TありSますT もしAとBしているTそのように彼らの交点がありますA ∩ B もしAとBしているTそのように労働組合がありますA ∪ B* *この定義は完全に正しいものではありませんが、有限集合の場合に当てはまります。これはこの課題の目的には十分です。実際の公理は無限の結合も可能にしますが、それは有限の場合には無関係です。 …

12
輪郭を描く
標高の長方形のマトリックスを指定して、その輪郭を描きます。 仕事 の場合、2つの要素xとyは同じ輪郭レベルにありますfloor(x/10) == floor(y/10)。たとえば、52と58は同じ等高線レベルにありますが58、そうで64はありません。 輪郭を描く動作は次のように定義されます。すべての要素についてe、次のように選択した2文字の文字列に置き換えます。 最初の文字は" "、下の要素eが同じ輪郭レベルにあるeか、下の要素がないかe、"_"そうでない場合 2番目の文字は" "、右側の要素がe同じ輪郭レベルにあるeか、右側の要素がない場合、eまたは"|"そうでない場合 行内の要素が結合され、次に行が改行で結合されます。 例 入力が[[5,20],[3,6]]、次のように視覚化されているとしましょう 5 20 3 6 最初に見てください5。以来、3同じ等高線レベルであり5、最初の文字です" "。20はと等高線レベルにないため5、2番目の文字は"|"です。 今、私たちは見てください20。6はと等高線レベルにないため20、最初の文字は"_"です。の右側に要素がないため20、2番目の文字は" "です。 今、私たちは見てください3。下3に要素がないので、最初の文字は" "です。以来、6同じ等高線レベルにあり3、第二の文字があります" "。 今、私たちは見てください6。下6に要素がないので、最初の文字は" "です。の右側に要素がないため6、2番目の文字は" "です。 これらの2文字の文字列に基づいて、getを置き換える[[" |","_ "],[" "," "]]。これらを結合すると、次の出力が得られます |_ ルール 入力行列は常に長方形で、正の整数で構成されます。 末尾のスペースまたは改行は任意の量(0を含む)であり、一貫性がある必要はありません。 同じ結果が得られる限り、同じアルゴリズムに従う必要はありません。 プログラムまたは関数は、改行で区切られた文字列、文字列のリスト、または同等のものを出力する場合があります。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース input output [[1,5,8,9],[3,11,13,8],[7,14,10,9],[4,8,7,6]] _ _ | | |_ _| [[0,10,20,30,40,50,60,70,80,90],[0,0,10,10,20,20,30,30,40,40],[0,0,0,10,10,10,20,20,20,30],[0,0,0,0,10,10,10,10,20,20],[0,0,0,0,0,10,10,10,10,10],[0,0,0,0,0,0,10,10,10,10],[0,0,0,0,0,0,0,10,10,10],[0,0,0,0,0,0,0,0,10,10],[0,0,0,0,0,0,0,0,0,10],[0,0,0,0,0,0,0,0,0,0]] …

28
めまい整数列挙
今日の課題は、すべての整数を列挙するシーケンスの特定の用語を出力することです。シーケンスは次のとおりです。シーケンスf(n)を生成する0インデックス関数ceil(x)があり、これがシーリング関数である場合f(0) = 0、; abs(f(n)) = ceil(n/2); およびが両方とも偶数または両方が奇数のsign(f(n))場合は正です。nceil(n/2) このシーケンスを理解しやすくするために、最初のいくつかの用語は次のとおりです。 0 1 -1 -2 2 3 -3 -4 4 5 -5 -6 6 7 -7... あなたの仕事は、整数を取り、シーケンスのth項をn出力するプログラムを書くことnです。入力は0または1インデックスのみです。 テストケース(0から始まる): 0 => 0 1 => 1 2 => -1 3 => -2 4 => 2 5 => 3 これはcode-golfで、最少バイトが勝ちます!

4
インターレース回転
チャレンジ 文字の正方行列(1バイトの印刷可能なASCII文字)を指定すると、行列の各「リング」を反対方向に回転させます。 例を見てみましょう: 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P 次に、次のように、最も外側のリングが時計回りに90度回転します。 1 2 3 4 5 L G B 6 1 6 A M 2 B F => N 3 G K …
25 code-golf  matrix 

11
カードの家(バージョン1)
バージョン2はこちら。 簡単な課題:整数を指定すると、指定した数のストーリーを持つカードの家を描きます。数値が負の場合、家を上下逆さまに描きます。例: Input: 2 Output: /\ -- /\/\ Input: 5 Output: /\ -- /\/\ ---- /\/\/\ ------ /\/\/\/\ -------- /\/\/\/\/\ Input: 0 Output: <empty, whitespace or newline> Input: -3 Output: \/\/\/ ---- \/\/ -- \/ 入力は数値または文字列にすることができます。出力は示されているとおりで、先頭および/または末尾のスペースと改行が許可されている必要があります。 これはcode-golfなので、各言語の最短のプログラム/機能が勝つかもしれません!

10
いくつかのダイヤモンドをダブルアップ
問題 nここで正の整数を与えますn < 100 次のようにダイヤモンドパターンを出力します。 入力 n=1 /\/\ \/\/ 入力n=2: /\ /\ //\\/\/\//\\ \\//\/\/\\// \/ \/ 入力n=3: /\ /\ //\\ /\ /\ //\\ ///\\\//\\/\/\//\\///\\\ \\\///\\//\/\/\\//\\\/// \\// \/ \/ \\// \/ \/ 入力n=4: /\ /\ //\\ /\ /\ //\\ ///\\\ //\\ /\ /\ //\\ ///\\\ ////\\\\///\\\//\\/\/\//\\///\\\////\\\\ \\\\////\\\///\\//\/\/\\//\\\///\\\\//// \\\/// \\// \/ \/ …

6
シーケンスがメタすぎます
空白の1インデックスシーケンスから始めます。 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,... n 番目のステップでは、a(n)がシーケンスのn 番目のエントリである場合、最初の残りの空白から始まる1より大きい整数ですべてのa(n)空白を埋めます。 最初のステップの後: 2,_,3,_,4,_,5,_,6,_,7,_,8,_,9,_,10,_,11,_,12,_,13,_,... 1より大きい最初の整数は2であるため、a(1)は2でなければならないことに注意してください。 2番目のステップでは、すべてのa(2)ブランクを埋めます。a(2)が2でなければならないことは明らかです。 2,2,3,_,4,3,5,_,6,4,7,_,8,5,9,_,10,6,11,_,12,7,13,_,... 3番目のステップでは、すべてのa(3)ブランクを埋めます。シーケンスから、a(3)= 3。 2,2,3,2,4,3,5,_,6,4,7,_,8,5,9,3,10,6,11,_,12,7,13,_,... 4番目のステップでは、すべてのa(4)ブランクを埋めます。シーケンスから、a(4)= 2。 2,2,3,2,4,3,5,2,6,4,7,_,8,5,9,3,10,6,11,3,12,7,13,_,... 最終的に: 2,2,3,2,4,3,5,2,6,4,7,2,8,5,9,3,10,6,11,3,12,7,13,2,... 仕事 nを指定すると、シーケンスのn 番目の要素が返されます。 シーケンスの最初の10,000,000の用語は、ここにあります。 これはcode-golfです。バイト単位の最短回答が優先されます。標準の抜け穴が適用されます。

8
私の子供のために階段を作ります
先日、息子はレゴのようなブロックを使って階段を作るように頼みました。そして、私はこのようなものを思いつきました: それから私の子供は、コンピューター画面で同様の階段を生成する最小バイト数を使用するプログラムを私に尋ねました。私はcode-golfが得意ではないので、あなたの助けが必要です。次のプログラムが必要です。 階段に必要なレベルの数を持つ正の整数を受け取ります。 画像に表示されているパターンを使用して、階段の図面を出力します。 出力はテキスト形式になりますが、ブリックは互いに区別できます。たとえば、「█」文字をブロックの半分として使用して、好きな色で塗りつぶしたり、任意の文字を選択したりできます。 制限事項: ブロックは3種類の色である必要があり、できるだけ長く使用されます(入力が1または2の場合、3色すべてを使用するのに十分なブロックがありません)。必要に応じて、たとえば「░▒▓」文字を使用するか、3つの異なる文字を選択するだけです。 同じ色またはパターンの2つのブロックを1列に並べて配置することはできません。 私の息子は、階段が描かれている限り、後続のスペースや改行を気にしません。 例(文字の選択が悪いのでごめんなさい): Input: 1 Output: ██ Input: 2 Output: ██ ▓▓ Input: 3 Output: ██ ▓▓ ██░░ Input: 5 Output: ██ ██ ██░░ ██░░ ██░░▓▓

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