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

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

10
列からのブロック対角行列
Stack Overflowのこの質問からコピーしたものに触発されました。 行列が与えられた場合A、Bの列がAブロック対角形式で配置されるように行列を作成します。たとえば、与えられた 1 2 3 4 5 6 出力は 1 0 0 4 0 0 0 2 0 0 5 0 0 0 3 0 0 6 ルール 入力と出力は、2D配列、ネストされた配列、または行と列の区切り文字が異なる文字列の形式です。 入力(行列A)の数値は正の整数になります。 出力のゼロが何らかの合理的な方法で表示される限り、単項形式が許可されます。たとえば、上記の結果は、引用符を使用して各番号を囲むことで表示できます。 '1' '' '' '1111' '' '' '' '11' '' '' '11111' '' '' '' '111' '' '' '111111' …

24
繰り返しのないランダム配列
ここで1つの課題に答えていましたが、このタスクは課題の一部でした。私はjavascriptで73バイトのソリューションを持っています。しかし、単純なことには多すぎると思います。 チャレンジ 入力として2つの整数を与えます: N 予想される配列の長さ R1で始まる間隔の範囲:1..Rではなく0..R-1 プログラム/関数の実行ごとに、1つの値が複数回発生しないようにN値が異なる長さの1つの異なる配列を出力します1..R。 R-valueコードで使用する必要があります。 制限事項 以下を想定できます2 <= N <= R。 私は本当に73バイトより短いJavaScriptソリューションを見たいと思っています。 しかし、もちろん、それはすべての言語に開かれています! あなたの言語が配列を返せない場合、すべての数字を印刷できます;)

5
ネストされた数字リード文字列を解析する
タスク 文字列Sは、次のプロセスで構築されます。 S空の文字列から始めます。 Sの形式の文字列のある位置に挿入しますds。ここでdは0以外の数字でs、d小文字のASCII文字の文字列です。dsはの構成要素であると言いSます。 ステップ2に進むか、停止します。 あなたの仕事は、そのような文字列を入力として受け取り、その構成要素を先頭の数字の出現順に連結して単一の文字列に出力することです。出力は単一の文字列でなければならず、構成要素間に区切り文字(改行を含む)を含めることはできません。入力文字列と出力文字列に引用符を付けるかどうかを選択できます。入力と出力が空になることはありません。 例 上記のプロセスで文字列を作成しましょう。構成要素の構造は、最終結果で強調表示されます。 S = "" // Insert "3abc" S = "3abc" // Insert "2gh" after 'a' S = "3a2ghbc" // Insert "1x" before '3' S = "1x3a2ghbc" // Insert "3tty" after '3' S = "1x33ttya2ghbc" // Final result └┘│└┴┴┘│└┴┘││ └────┴───┴┘ 出力は、数字の順に構成要素を連結することによって取得されます。この場合、正しい出力は "1x3abc3tty2gh" ルールとスコアリング 完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 …

11
バイナリ部分文字列の合計
この課題は簡単で、10進数が与えられ、2進数に変換され、元の数字よりも短い2進数の部分文字列の合計を計算します。以下に例を示します。 Input: 11 Binary: 11 -> 1011 Substrings: 101 = 5 011 = 3 10 = 2 01 = 1 11 = 3 1 = 1 0 = 0 1 = 1 1 = 1 Sum: 5+3+2+1+3+1+0+1+1=17 Output: 17 上記のように、プログラムは入力として単一の10進整数を取り、バイナリサブストリングの合計を出力する必要があります。入力のバイナリ表現は常に2桁以上であり、入力ではプログラムの実行中にエラーが発生しないと想定できます。 これはcode-golfで、バイト単位の最短コードが勝ちです! テストケース: 2 => 1 3 => 2 4 => …

13
numberに最も近い値を取得します
このコードゴルフでは、リスト内の別の番号から最も近い番号を取得する必要があります。 出力は、入力に最も近い番号になる場合があります。 例: value: (Input) 5 --- [1,2,3] --- 3 また、プログラムは負の数で動作する場合があります。 例: value: (Input) 0 --- [-1,3,5] --- -1 value: (Input) 2 --- [1, 5, 3] --- 1 (Because it gives priority to lower numbers) ルール: 前述のように、負の数を処理する必要があります。 2つの回答がある場合(例:0-[5、-5])、プログラムは最も低い番号を優先します。(-5) これはコードゴルフなので、最短のコードが勝ちます!

3
任意精度の整数除算
任意の大きな整数の除算を実装します。 これはcode-golfです。 タスクは、任意の精度の整数とその除算を実装するプログラムまたは関数を作成することです。 これを非常に簡単にする多くのことが許可されていないことに注意してください。仕様を必ずお読みください。 入力 入力として2つのものが与えられます。 基数10桁の文字列、それを呼び出しますn。 基数10の別の文字列、それを呼び出す m ことを前提としn>m>0ていることを意味しますが、ゼロ除算に頼まれることはありませんが。 出力 もし出力二つの数字、意志Q及びM * Q + R = N及び0 <= R <MR 仕様書 送信は、任意の大きな整数(使用可能なメモリによって制限される)に対して機能します。 外部ライブラリを使用することはできません。I / O用の外部ライブラリが必要な場合は、組み込みライブラリとして扱うことができます。(iostreamなどのようなものを見て)。 あなたの言語がこれを簡単にするビルトインを持っているなら、あなたはそれを使わないかもしれません。これには、任意の精度の整数を処理できる組み込み型が含まれます(ただし、これに限定されない場合があります)。 何らかの理由で言語がデフォルトで任意の精度の整数を使用する場合、この機能を使用して、通常64ビットで格納できない整数を表すことはできません。 入力と出力は基数10でなければなりません。メモリへの数値の格納方法や数値の演算方法は関係ありませんが、i / oは10を基数になります。 結果を出力するには15秒あります。これは、反復減算を禁止するためです。 ここでの目標は、実際に任意の精度の整数を実装することです。何らかの理由でチャレンジ仕様を遵守し、それらを実装せずにこれを成功させることができれば、私はあなたにとって良いと思う、有効だと思う。 テストケース この場合、入力は39です!そして30! 入力 n = 20397882081197443358640281739902897356800000000 m = 265252859812191058636308480000000 出力 Q = 76899763100160 R = 0 n50までのすべての階乗の合計に1を足したものmが、20までの連結数です。 …

10
関数の引数を独自の行に揃える
関数定義を表す文字列の入力が与えられたら、関数の引数が改行で区切られて整列されるように、改行とスペースが挿入された文字列を出力します。 入力文字列は次のパターンに従います。 まず、プレフィックスで始まります。プレフィックスは常に少なくとも1文字の長さで、文字は含まれません,()。 開き括弧(()は、引数リストの始まりを示します。 その後、ゼロ個以上の引数のリストが続きます。これらは文字列", "(コンマとスペース)で区切られます。引数には文字は含まれません,()。 閉じ括弧())は、引数リストの終わりを示します。 最後に、0個以上の文字であり、文字を含むことがある接尾辞が見つかる 場合があります,()。 入力文字列は、印刷可能なASCIIのみで構成されます(つまり、改行は含まれません)。 出力は次のとおりでなければなりません。 プレフィックス、コピーされたそのまま、および開き括弧。 引数リスト。今回は", "、コンマ、改行、および各引数の最初の文字を垂直方向に揃えるために必要なだけのスペースで区切られています。 閉じ括弧と接尾辞(存在する場合)はそのまま。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース(形式:単一行の入力とそれに続く出力と二重の改行): def foo(bar, baz, quux): def foo(bar, baz, quux): int main() { int main() { fn f(a: i32, b: f64, c: String) -> (String, Vec<i32>) { fn f(a: i32, b: f64, c: String) -> …
16 code-golf  string 

3
作業期間を確認する
前書き ここドイツでは、労働時間に関する裁定は非常に厳格です。1日6時間以上働く場合は、少なくとも30分の休憩を取る必要があります。9時間以上働く場合は、45分の休憩を取る必要があります。勤務時間が6時間未満の場合は、休憩を取る必要はありません。 もちろん、これらの休憩を分割することもできますが、各パートをカウントするには少なくとも15分以上の長さが必要です。 チャレンジ この課題では、作業期間のリストを取得し、次のルールを使用して、十分な休憩が取られたかどうかを確認する必要があります。 w仕事時間を時間単位にしてみましょう: w < 6 -> No breaks needed 6 <= w < 9 -> 30 minute break needed w >= 9 -> 45 minute break needed さらに、各休憩の長さは少なくとも15分である必要があります。また、必要以上の休憩を取ることができます。これらはすべて「少なくとも」値です。 入力 入力は作業期間のリストになります。正確な形式はユーザー次第ですが、時間と分として時間値のみを含める必要があります。 例: ここでの形式はタプルのリストですが、各タプルは作業期間を表します。タプルの最初の要素は開始時間になり、2番目の要素は終了時間になります。 [("07:00","12:00"),("12:30","15:30"),("15:45","17:15")] これにより、合計作業時間は9.5時間、合計休憩時間は45分になります。 これらの作業期間は、休憩で区切る必要はありません。互いにちょうど続く作業期間もあります(例はテストケースを参照)。 また、休憩は勤務時間にカウントされないことに注意してください。これらは2つの別個の値です。 作業期間が順序付けられていると想定できます。 出力 この入力、出力を考えるとtruthyの十分な休憩が取られた場合は、値とfalsy値でない場合。 ルール 提出物で使用している入力形式を指定します。 空の入力を処理する必要はありません。常に少なくとも1つの作業期間があります。 作業期間は1日のみであるため、深夜に作業を行う必要はありません。 日付/時刻-/ Whatever-ビルトインは、言語に付属している限り許可されます。 機能または完全なプログラムが許可されます。 …

3
この言葉は何語ですか?
特定の単語の言語を決定するプログラムまたは関数を作成する必要があります。 タスクは、4つの言語で最も一般的な5000の単語の一部を認識することです。 英語 ドイツ人 イタリアの ハンガリー語 単語リストは、このGitHubリポジトリにあります。 提供されたテストケースの40%で間違いを犯すことができます。つまり、20000個の入力のうち8000個を誤って分類する可能性があります。 詳細 リストには小文字の単語のみが含まれているa-zため、たとえばwon't、möchteなどは含まれません。 いくつかの単語が複数の言語で表示されます。これは、コードが常に期待される出力を正しく推測できないことを意味します。 便宜上、すべてのテストケースを1つのリストとしてダウンロードできます。各行の数字は、単語の言語を示します。(1英語、2ドイツ語、3イタリア語、4ハンガリー語の場合。) 標準抜け穴は許可されていません。 単語リストを使用して、プログラミング言語によって提供される類似のデータは禁止されています。 入力 小文字の英字(az)のみを含む文字列。 末尾の改行はオプションです。 出力 言語ごとに明確で一貫した(常に同じ)出力を提供することで、単語を分類できます。(たとえば1、英語、2ドイツ語、3イタリア語、4ハンガリー語)。 これはコードゴルフであるため、最短のプログラムまたは機能が優先されます。 関連コードのゴルフの質問:これは言葉ですか? 単語リストは、wiktionary.orgと101languages.netから取得されました。

4
愚かな株式市場
複数の人の投資データを含む文字列が与えられた場合、彼らが記録した利益/損失を調べてください。 文字列には、次のように大文字と小文字のみが含まれます。 AABaBbba 各文字は人を表します-大文字は購入を意味し、小文字は販売を意味します。彼らが投資している株の価格(CGLF)は50ドルから始まります。誰かが購入すると、価格は5%上がります。誰かが売った後、価格は5%下がります。参加した各人がどれだけのお金を稼いだ/失ったかを把握する必要があります。 ノート: 文字列は常に有効で、最初に購入しないと販売できません。また、株式を買う人は誰でも最終的にそれを売るでしょう。 計算は、少なくとも小数点以下6桁まで正確でなければなりません。ただし、最終的な回答は小数点以下2桁に丸める必要があります。 テストケース: 入力: AABaBbba A:購入-$ 50 A:購入-$ 52.50 B:購入-$ 55.125 a:販売-$ 57.88125 B:購入-$ 54.9871875 b:販売-$ 57.736546875 b:販売-$ 54.8497195313 a:販売-$ 52.1072335547 人Aの利益:57.88125+52.1072335547-50-52.50=7.4884835547 人Bの利益:57.736546875+54.8497195313-55.125-54.9871875=2.4740789063 出力:( A:7.49,B:2.47順序は関係なく、セパレータは不要です) 入力: DGdg D:購入-50ドル G:購入-$ 52.50 d:販売-$ 55.125 g:販売-52.36875ドル 人Dの利益:55.125-50=5.125 人Gの利益:52.36875-52.50=-0.13125 出力: D:5.13,G:-.13 入力: ADJdja A:購入-$ 50 D:購入-$ 52.50 J:購入-$ 55.125 …
16 code-golf 

3
ラベルの行き止まり
ASCIIアート「道路」の入力が与えられると、すべての行き止まりにラベルが付けられた道路を出力します。 これは道です: ########.....######..#..### #......#######....#..#..#.# #.##......#...#####..#..### #..#####..#....#..#######.# #......#...#####.....##...# #..###.#...#...###...#..### ##########.#..#..##..#.##.# ..#......#.######.#..#.#.#. ..#......#.#..#.#.#..#.#.#. ..######.###..##..######### これは、文字でラベル付けされた行き止まりの道路Xです: ########.....######..X..### #......#######....#..X..#.# #.XX......X...X####..X..### #..XXXXX..X....#..#######.# #......X...#####.....##...# #..###.X...#...###...#..### ##########.#..X..##..#.##.X ..X......#.#XXXXX.#..#.#.X. ..X......#.#..X.X.#..#.#.X. ..XXXXXX.###..XX..######XXX デッドエンドは、任意の道路タイルとして定義される境界nは少なくとも他の道路タイル、N-1であると考えられるその行き止まりをこのルールによって既に。「境界線」は4つの基本方向であるため、斜めに隣接するタイルはカウントされません。 このルールは繰り返し適用されます。新しく作成された行き止まり自体が、さらに行き止まりを作成できるためです。また、他の1つの道路タイルのみに接する道路タイルは、ルールが初めて適用されたときに行き止まりと見なされることに注意してください。 入力と出力は、単一の文字列(#または以外の文字で区切られた行を持つ.)または配列/リスト/などのいずれかです。言語がサポートしている場合は、関数の引数として各行を入力することもできます。 入力について次のことを想定できます。 常に少なくとも1つの「ループ」、つまり#無限に追跡できる文字のグループがあります。(そうしないと、すべてのタイルが行き止まりになります。) これは、最小ループが次のようになるため、入力が常に2×2以上になることを意味します。 ## ## (ちなみに、変更せずに出力する必要があります。) すべての#キャラクターが接続されます。つまり、any #で塗りつぶしを実行すると、それらすべてが影響を受けます。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 上記の例と小さな2×2グリッドは、テストケースとして使用できます(この課題でカバーするエッジケースは多くありません)。

2
チェスのダービー
チェスや解体ダービーよりも正反対の可能性があるもの。あなたは、今日まで、一方を楽しむ人はもう一方を楽しむことはないと思うでしょう。 ルール 開始位置は、標準のチェス盤です。 RNBQKBNR PPPPPPPP PPPPPPPP RNBQKBNR 普通のように見えますが、それがすべての最後の部分の競争であることがわかるまでは: ターンごとに、ボード上の各ピースは、ランダムに選択された有効な動きを1つ行います(標準の動きルールを使用)。ただし、ピースが移動する順序は、ターンごとにランダム化されます。 ピースは、たとえそれが同じ色であっても、王であっても、あらゆるピースをキャプチャできます。 ポーンはFORWARDと対角線をキャプチャできます。さらに、通常のように、その前に空きスペースがある場合、ポーンはその最初の動きで2つのスペースを移動できます(そのようにキャプチャすることもできます)。さらに、ポーンはaポーン。 勝者は最後の駒です。ただし、1000ターン後に複数のピースが残っている場合、残りのピースはすべて勝者です。 通行人、小切手、城などはありません 出力 ターンごとにターン番号と、ボードの外観を出力します。ピースが殺された後、ボードから削除されます。最初のターンの後、ボードは次のようになります。 1. K RBQ N BR NP P P PP P P R PP BPN PNP K R Q 1000回の移動後、ボードは次のようになります。 1000. Q K P N R R B N Q そしてゲームは終了します。 または、おそらく556ターン後にボードは次のようになります。 556。 R それでゲームはそこで終わります。 *このチャレンジで行われるすべてのランダム化が均一であることを確認してください(すべての可能性が等しく発生する可能性があります)。

12
指定された非数値行を削除します
疑問がある場合:Nan = Non-numeric datatypeこのチャレンジの目的のため。 入力として行列/配列と列インデックスのリストを受け取るプログラムまたは関数を記述します。 課題は、指定された列のすべての要素が存在する行を削除することNanです。行内の他の要素が数値であるかどうかは関係ありません。次の例は、これをより明確にすることを願っています(1インデックス化されています)。 Input array: 16 NaN 3 13 5 11 NaN 8 NaN 7 NaN 12 4 14 -15 1 Input column index: [1 3] Output array: 16 NaN 3 13 5 11 NaN 8 4 14 -15 1 ---- Input array: 16 NaN 3 13 …

10
整数の分割、反転、再結合
バックグラウンド 数学では、整数を整数のペアと1対1で対応させることができることはよく知られています。これを行うには多くの方法がありますが、この課題では、そのうちの1つとその逆の操作を実装します。 タスク 入力は正の整数n > 0です。a, b ≥ 0などの一意の非負整数が存在することが知られています。出力は、正の整数の「反転バージョン」です。n == 2a * (2*b + 1)n2b * (2*a + 1) 入力および出力は、言語の標準の符号なし整数データ型に適合すると仮定できます。 ルールとスコアリング 完全なプログラムまたは関数のいずれかを作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース in <-> out実装される関数はそれ自体が逆であるため、これらはformat で与えられます。出力をフィードバックする場合、元の入力を取得する必要があります。 1 <-> 1 2 <-> 3 4 <-> 5 6 <-> 6 7 <-> 8 9 <-> 16 10 <-> 12 11 <-> …

21
降順の数字列
前書き 例として、番号を見てみましょう7。次に、これを複製し、間に7つのスペースを配置します。これを取得します。 7_______7 その後、スペースがなくなるまで数を減らします。数7については次のようになります。 7_______7 6543210 次に、2つをマージするだけです。 7_______7 6543210 becomes 765432107 これは、N = 7の場合に出力されます。 簡単そうですね。N = 12を取ります。再び2つの数字の間に12個のスペースを挿入します。 12____________12 次に、減分を開始します。 12____________12 111098765432 そして、これは最終的に私たちに与えます: 1211109876543212 ご覧のとおり、下降部分は0 ではなく 2で終わります。 仕事 1より大きい整数を指定すると、上記のように降順が出力されます。 テストケース Input Output 2 2102 3 32103 4 432104 5 5432105 6 65432106 7 765432107 8 8765432108 9 98765432109 10 10987654321010 11 …

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