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

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

5
困惑する数を追加して乗算する
「複素数」とも呼ばれる分割複素数は、複素数に似ています。i^2 = -1ただし、代わりにがありj^2 = 1; j != +/-1ます。各番号はの形式を取りますz = x + j*y。 この課題の複雑さを制限するための1つの試み-では、減算を行わないため、シンボルを使用して否定を表します。 視聴の楽しみの例を次に示します。 6 * 9 = 54 // real numbers still act normally 5 + -7 = -2 j*1 + j*1 = j*2 // two `j`s added together make a j*2 7 * j*1 = j*7 // multiplication …

9
文字列を使用したベース変換
前書き 過去にいくつかの基本変換の課題がありましたが、任意の長さの数値(つまり、整数データ型をオーバーフローさせるほど長い数値)に取り組むように設計されたものは多くありませんでした。複雑です。このように基本コードの変更をどのように実行できるか興味があります。 チャレンジ あるベースの文字列を別のベースの文字列に変換できるプログラムまたは関数を選択した言語で記述します。入力は、変換される数値(文字列)、from-base(10進数)、to-base(10進数)、および文字セット(string)である必要があります。出力は、変換された数値(文字列)でなければなりません。 いくつかの詳細と規則は次のとおりです。 変換される数値は負でない整数になり(以降-と.文字セットであってもよいです)。出力も同様です。 先行ゼロ(文字セットの最初の文字)は削除する必要があります。結果がゼロの場合、単一のゼロ桁が残るはずです。 サポートされる最小ベース範囲は2〜95で、印刷可能なASCII文字で構成されます。 変換する数値の入力、文字セット、および出力は、すべて文字列データ型である必要があります。基数は、基数10の整数データ型(または整数浮動小数点数)でなければなりません。 入力数値文字列の長さは非常に長くなる場合があります。賢明な最小値を定量化することは困難ですが、少なくとも1000文字を処理し、まともなマシンで10秒未満で100文字の入力を完了することができると期待しています(この種の問題には非常に寛大ですが、私はしたくない焦点となる速度)。 組み込みの基本変更機能は使用できません。 文字セットの入力は、通常の0-9a-z ...などだけでなく、任意の配置にすることができます。 有効な入力のみが使用されると仮定します。エラー処理を心配しないでください。 勝者は、基準を達成する最短のコードによって決定されます。少なくとも7から10日以内に、または十分な提出があった場合は、それらが選択されます。同点の場合、より高速に実行されるコードが勝者になります。速度/パフォーマンスが十分に近い場合、先に出された答えが勝ちです。 例 コードで処理できる入力と出力の例を次に示します。 F("1010101", 2, 10, "0123456789") > 85 F("0001010101", 2, 10, "0123456789") > 85 F("85", 10, 2, "0123456789") > 1010101 F("1010101", 10, 2, "0123456789") > 11110110100110110101 F("bababab", 2, 10, "abcdefghij") > if F("10", 3, 2, …

1
ここに住んでもいいですか?
ゲームTerrariaでは、ゲームメカニクスの1つにNPCが入居できるように家を建てることが含まれます。有効な家と見なされるかどうかについての厳しいルールセットがあります。ルールのリストは次のとおりです。 家の総面積は、少なくとも60平方タイルで、750未満でなければなりません。また、外枠を含む家のサイズは、少なくとも次のいずれかでなければなりません。 5x12 6x10 7x9 8x8 9x7 10x6 12x5 15x4 簡単にするために、次のことを安全に想定できます。a)すべての入力家は長方形であり、b)#家の中には固体のタイルはありません。こちらが12x6フレームです(美しいASCIIで描かれています): ############ # # # # # # # # ############ 家は背景の壁で覆われている必要があります。これらは固体のタイルではなく、三次元の家の後ろの壁です。穴は許可されますが、4x4より大きくすることはできません。行に5つ以上のスペース文字の行または列がある場合、これは4x4より大きい穴であり、家は無効です。複数の穴も許可されますが、少なくとも1つの壁が離れている必要があります。 ############ #**********# #**********# #**********# #**********# ############ ############ #* * # #* * # #* * # #****** # ############ (Still acceptable since neither hole is larger than 4x4 …
16 code-golf  string  game  grid 

3
単語のリストをフォーマットする
課題は、各行にできるだけ多くの単語が含まれ、単語が不必要に切り捨てられないように、指定された文字数以下の複数行にわたって単語のリストをフォーマットすることです。 入力 入力は、スペースで区切られた単語のリストと、少なくとも4の数字になります。 出力 出力は、行にグループ化された入力単語である必要があります。これにより、行に入力番号より多くの文字が含まれることはありません。単語は入力された順に出力される必要があります。単語はカンマで区切り、次にスペースで区切る必要があります。ただし、各行の最後はスペースは不要です。単語が長すぎて行に収まらない場合は、他の規則に従って単語をできるだけ短く切り取り、最後に「...」を追加する必要があります。 テストケース Input: foo bar baz qux 12 Output: foo, bar, baz, qux Input: foo bar baz qux 5 Output: foo, bar, baz, qux Input: strength dexterity constitution intelligence wisdom charisma 10 Output: strength, dexterity, consti..., intell..., wisdom, charisma Input: quas wex exort 4 Output: ..., …
16 code-golf  string 

30
除外して追加
仕事 タスクは非常に簡単です。数字、大文字、小文字を含む空でない文字列が与えられた場合、残りの数字の合計を出力します。例えば: a1wAD5qw45REs5Fw4eRQR33wqe4WE すべての文字を除外すると、次のようになります。 1 5 45 5 4 33 4 これらの数値の合計は1 + 5 + 45 + 5 + 4 + 33 + 4 = 97です。したがって、出力はになります97。 テストケース a > 0 0 > 0 5 > 5 10 > 10 a0A > 0 1a1 > 2 11a1 > 12 4dasQWE65asAs5dAa5dWD > …

5
XORプライムを見つける
では、この課題 XNORによってもたらされる、我々はXOR乗算を実装するように求めていました。この課題の目標は、最初のnXORプライムを見つけることです。XORプライムは、次の定義からわかるように、通常のプライムに非常に似ています。 素数の定義: 1とそれ自体の乗算を除き、2つの数値の乗算では形成できない1より大きい正の数。 XOR Primeの定義: 1とそれ自体のXOR乗算を除き、2つの数値のXOR乗算では形成できない1より大きい正の数。XORプライムはoeisシーケンスA014580を構成することに注意してください。 XOR乗算は、キャリーなしのバイナリロング乗算として定義されます。xnorのchallengeでXOR乗算の詳細を見つけることができます。 入力: 整数n。 出力: 最初のnXORプライム。 500以下のXORプライムは次のとおりです。 2 3 7 11 13 19 25 31 37 41 47 55 59 61 67 73 87 91 97 103 109 115 117 131 137 143 145 157 167 171 185 191 193 203 211 213 229 …

7
Prologでのゴルフのヒント
Prologでゴルフをするための一般的なヒントは何ですか?私は、Prologに少なくともある程度固有の一般的なゴルフ問題のコードに適用できるアイデアを探しています(たとえば、1文字の変数は、プログラムのサイズを小さくするためにPrologに固有ではありません)。 Prologの実装に固有のものかどうかをヒントに明記してください(例:SWI-Prolog固有のビルトイン) 回答ごとに1つのヒントのみ、または同じメインアイデアに密接に関連するヒントのリストのみを投稿してください。
16 code-golf  tips 

2
増加するサブシーケンスへの分割
仕様 この課題は簡単に説明できます。入力は負でない整数の空ではない配列であり、タスクはできるだけ少ないサブシーケンスに分割することです。より正式にはA、入力配列がの場合、出力は次のBような配列の配列になります。 の各配列はB、A互いに素な(必ずしも連続していない)サブシーケンスへのパーティションを形成します。帰納的に、これはをB含むシングルトン配列Aであるか、の最初の要素BがのサブシーケンスでAあり、残りAがそのサブシーケンスが削除されたパーティションを形成することを意味します。 のすべての配列Bは(必ずしも厳密ではありませんが)増加しています。 配列の数Bは最小限です。 入力と出力の両方を、言語のネイティブ配列形式で取得できます。いくつかの正しい出力がある場合があることに注意してください。 例 入力配列を考えますA = [1,2,1,2,5,4,7,1]。可能な出力の1つですB = [[1],[1,2,4,7],[1,2,5]]。パーティションの状態は、次の図から明らかです。 A 1 2 1 2 5 4 7 1 B[0] 1 B[1] 1 2 4 7 B[2] 1 2 5 また、の各配列Bは増加しています。最後に、A増加する2つのサブシーケンスに分割できないため、の長さBも最小になります。したがって、それは有効な出力です。 ルールとスコアリング 関数または完全なプログラムを作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。期限はありませんが、提出する前にすべてのテストケースでソリューションを評価する必要があります。 テストケース 表示される出力は1つだけですが、有効なオプションがいくつかある場合があります。特に、結果の配列の順序は重要ではありません(ただし、個々の配列は昇順である必要があります)。 [0] -> [[0]] [3,5,8] -> [[3,5,8]] [2,2,2,2] -> [[2,2,2,2]] [1154,1012,976,845] -> [[845],[976],[1012],[1154]] [6,32,1,2,34,8] …

6
フラクタルシーケンスの収束和
バックグラウンド フラクタルシーケンスは、あなたがすべての整数の最初の発生を削除し、前と同じ配列で終わることができ整数シーケンスです。 このような非常に単純なシーケンスは、キンバリングの言い換えと呼ばれます。正の自然数から始めます。 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 次に、いくつかの空白をリフルします。 1, _, 2, _, 3, _, 4, _, 5, _, 6, _, 7, _, 8, _, 9, ... そして、空白自体にシーケンス自体(空白を含む)を繰り返し入力します。 1, 1, 2, _, 3, 2, 4, _, 5, 3, 6, _, 7, 4, 8, _, 9, …

3
サイコロを転がす
サイコロを転がす だから、私はさっきサイコロを転がしていて、挑戦を考えていました。 入力と動きのリストから取得されたネットを持つキューブが与えられたら、最後の下部にある正方形を見つけます。 ここでは例としてこの画像を使用します。 入力 動きのリストで文字列を受け取ります。文字列には大文字のASCII文字N、S、W、およびEのみが含まれます。これらは、キューブをその方向に1ステップ移動することに対応します。 写真では、1つのNが底面を6にします。この画像では、北がカメラから離れ、南が向かっており、東が右、西が左です。 また、次の形式の文字列を受け取ります。1P2P 3P 4P 5P 6P。ここで、各PはN、S、W、E、T、およびBの位置です。TおよびBは下と上です。 数字はその数字の顔であり、文字は顔の位置を表します。明確でない場合、ネットは常に数字で順序付けられるため、1P 2P 3P 4P 5P 6P、決して2B 1T 3N 4S 5W 6E。 画像内の位置は1S 2B 3E 4W 5T 6Nです。 出力 プログラムは、下側を表す数値を出力する必要があります。 テストケース (nothing), 1S 2B 3E 4W 5T 6N -> 2 N, 1S 2B 3E 4W 5T 6N -> 6 …

11
Pi Day、Pi Minute、Pi Second?
この課題では、Pi Day、Pi Minute、Pi Secondのいずれであるかを判断する必要があります。 Piは非合理的であるため、コードをできるだけ短くする必要があります。 例 入力は提供されません。プログラムはシステム時刻を使用する必要があります。わかりやすくするために追加しました March 14, 2016 0:00:00 Pi Day December 25, 2015 3:14:45 Pi Minute December 29, 2015 0:03:14 Pi Second January 1, 2016 0:00:00 <No Output> Piの日/分/秒とは Pi Day 月は3月で、日付は14日です Pi Minute 時は3で、分は14です Pi Second 分が3で、秒が14の場合 Pi DayPi Minuteまたはの代わりに優先されるべきでありPi Second、のPi Minute代わりに優先されるべきですPi Second。 このチャレンジでは、12時間(15:14 == 3:14)を使用する必要があります。決定に使用される日付/時刻はPi …
16 code-golf  date  pi 

1
弾丸が衝突するとき
この挑戦は、私が少し前にいくつかの本で読んだ謎に基づいています。さまざまな速度で1秒間に1回銃から発射される弾丸が永久に直線で移動することです。ある弾丸が別の弾丸に当たると、両方が完全に破壊されます。(「弾丸」のすべてのインスタンスを「ミサイル」に置き換えてください。) タスク 発射された順番で弾丸の速度のリストが与えられたら、すべての弾丸が破壊されるかどうかを決定します。 ルール 入力は、任意の区切り文字で区切られ、前後に1つのオプション文字がある、負でない整数のリストです。これらは、有効な入力です:1 2 3 4 5 6と[1,2,3,4,5,6]。プログラマーが選択します。 少なくとも1つの弾丸が永遠に生き残る場合は真実の値を出力し、そうでない場合は偽の値を出力します。 弾丸の速度は1秒あたりの単位で与えられます。 弾丸は同時に連続的に移動します。 箇条書きは、わずかなオフセットで衝突する場合があります。 原点からの整数または小数のオフセットにかかわらず、正確に同じ位置に同時に到達する複数の弾丸は、すべて互いに衝突します。 例 これらの図でGは、銃、>弾丸を表し、*弾丸が衝突して爆発するときです。 真実の 入力: 0 0123456789 Time 0 G> 1 G> 2 G> ... 出力: 1 入力: 0 0 0 0123456789 Time 0 G> 1 G* 2 G> 3 G> 4 G> ... 出力: 1 …

6
可分性関係の最大一致を見つける
正の整数のセットが与えられます。次のようなペアに配置する必要があります。 各ペアには2つの数字が含まれており、その1つは別の倍数です。たとえば、8は4の倍数で、9は9の倍数です。 初期セットで同じ数が何度も発生する場合、ペアで何度も使用できます。番号は、同じ番号の別の出現とペアにすることもできます 可能な最大数のペアが取得されます。 出力はペアの数でなければなりません。最短のコードが優先されます。 サンプルデータ 2,3,4,8,9,18 -> 3 7,14,28,42,56 -> 2 7,1,9,9,4,9,9,1,3,9,8,5 -> 6 8,88,888,8888,88888,888888 -> 3 2,6,7,17,16,35,15,9,83,7 -> 2

28
Revu'aを綴る
実際には、Atbash Self PalindromesやGeneralized Gematria Calculatorのどちらにも触発されていません。 ストリング所与の長さのN、出力Revu'aシーケンスの最初の文字であり、Sの最初の2つの文字S、...第nは -2の文字S、最初のn -1文字の、全体の。 文字列は、強い指向性を持ち、0x0000〜0xFFFFの範囲にあるUnicode(必要なエンコード)文字のみで構成されます。ただし、方向性制御文字は発生しません。任意の文字列のすべての文字は同じ方向性を持ちます。 ["t","te","tes","test"]スペースで区切られた文字列"t te tes test"、複数行のテキストttetestest、事前にフォーマットされた配列として配列表記で返すことができますt て テス テスト、または同様のもの。先頭、区切り、末尾のスペースの量は重要ではなく、末尾の改行も重要ではありません。疑問がある場合は尋ねます。 右から左への入力は、正しい順序で右から左への出力になる必要があります。 入力:"נחמן" 出力:"נ נח נחמ נחמן"またはנ נח נחמ נחמן 、または["נ","נח","נחמ","נחמן"]。無効な結果の中には"נחמן נחמ נח נ"、"ן מן חמן נחמן"、と"נחמן חמן מן ן"。

5
キーの森が見えない
などの任意の合理的な便利なフォーマットで整数の空でないリストを取り込みプログラムまたは機能書く4, 0, -1, -6, 2かを[4 0 -1 -6 2]。 リストをASCIIアートフォレストとして表示する文字列を印刷するか、返します。各数値は、高さが比例したツリーになります。各ツリーは、次のように出力で4列のテキストを使用します。 正の整数Nは、ベースが__|_でトップが ^ で / \、その間にN層あるツリーになります。 たとえば、N = 1の場合、ツリーは ^ / \ __|_ N = 2の場合、ツリーは ^ / \ / \ __|_ N = 3の場合、ツリーは ^ / \ / \ / \ __|_ 等々。 負の整数Nは、対応する正のツリーのようになりますが、垂直バーがスペースではなくブランチスラッシュの間にある点が異なります。 たとえば、N = -1の場合、ツリーは ^ /|\ __|_ …

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