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

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

16
調和級数の正確な部分和
チャレンジ 正の整数を指定するNと、最初のN逆数の合計を正確な分数として出力します。これは、分子と分母を表す一貫した順序の整数のペアとして表されます。 ルール 出力は正確でなければなりません。 出力は、分子と分母を表す一貫した順序の整数のペアである必要があります。 非整数の数値型(組み込みまたはライブラリ)の使用は禁止されています。 明確化/例外:使用、計算、および返される値がすべて整数である場合にのみ、非整数の数値型は問題ありません(つまり、言語はデフォルトで有理数を使用しますが、答えには整数演算のみを使用します) 出力はできるだけ減らす必要があります。(3/2大丈夫です、そうで6/4はありません) 標準的な抜け穴は禁止されています。 提出は、少なくとも20までの入力、またはこのメタのいずれか高い方で機能する必要があります。 テストケース 1: 1/1 2: 3/2 (1/1 + 1/2) 3: 11/6 (1/1 + 1/2 + 1/3) 4: 25/12 etc. 5: 137/60 6: 49/20 20: 55835135/15519504 56: 252476961434436524654789/54749786241679275146400 226: 31741146384418617995319820836410246588253008380307063166243468230254437801429301078323028997161/5290225078451893176693594241665890914638817631063334447389979640757204083936351078274058192000 テストケースの生成(Python 3) import fractions def f(x): return sum(fractions.Fraction(1,i) for i in range(1,x+1)) …

14
資本暗号
あなたの仕事は、範囲[32..126]の印刷可能なASCII文字で構成される空でない文字列を解読することです。 文字ごとの文字列の読み取り: 小文字の文字に出会うたびに、「A」で始まる大文字の次の文字に関連付けます 大文字の文字に出会うたびに、関連付けられている小文字の文字に置き換えます 他の文字は特別な処理を必要とせず、そのまま変更されません 例 入力文字列の場合"endlAsEBAEE": アソシエイトeへA、nへB、dへCとlへD 交換するAとe アソシエイトsへE 交換するEBAEEとsness 最終的な出力は"endlessness"です。 明確化と規則 入力文字列には、各小文字が1回しか含まれないことが保証されています。それ以降のすべてのインスタンスは、対応する大文字に置き換えられます。 入力文字列は有効であることが保証されています。(まだ小文字に関連付けられていない大文字は表示されません。) 大文字が小文字に関連付けられると、後で文字列で使用される場合とされない場合があります。例えば、CおよびD上記の例では使用されません。 これはcode-golfなので、バイト単位の最短回答が勝ちです! テストケース 入力: abcd honk! ABCD! abrAcAdABCA endlAsEBAEE helCo wDrCd! dermatoglyphics progBamFinD AuzJles & cCdL DCKf sphinx of black quKrtz, jOdge my vGw. K NODLM IPGZE HGF SOWBA GYVP QCV JKRX TGU. petBr AiABD …

3
Octaveの匿名関数を使用してベクターの要素を交換する方法は?
Octaveでは、ベクトル/マトリックス内の2つの要素を交換するのは非常に簡単です。 x='abcde'; x([4,1])=x([1,4]) x = dbcae 残念ながら、匿名関数内でこれを行う方法をまだ見つけていません。以下の関数は構文的には正しいですが、xベクトル全体ではなく、スワップされる2つの要素のみを返します。 f=@(x)(x([4,1])=x([1,4])) f(x) ans = ad 匿名関数を使用してゴルフのように望ましい動作を達成する方法はありますか?無名関数を使用して、この方法で複数の要素を交換できますか? 私は可能性がインデックスベクトルを作成しますf=@(x)x([4,2,3,1,5])が、動的なベクトルを作成する可能性があまりにもバイトの多くがかかります。

10
同じ桁の2倍ではなく、複数の基数
入力 正の整数の空でない配列。 仕事 各桁(ようにいずれかの2進数、8進数、10進数または16進数の各整数を変換0にFが)一度ほとんどで使用されています。 出力 パズルの解決に使用されたベースのリスト。 詳細な例 [16、17]の期待される出力は[8進数、10進数]です。 その理由は次のとおりです。 両方に1が含まれているため、両方の数値に単純に10進数を使用することはできません。 16は、このベース(10000)の表現に複数の0が含まれているため、バイナリに変換できません。 17は、このベース(10001)の表現がいくつかの0といくつかの1を含むため、バイナリに変換することもできません。 17は、この基数(11)の表現が2つの1で構成されているため、16進数に変換できません。 残りのすべての可能性を考えてみましょう。 +---------+---------+--------+ | oct(16) | dec(16) | hex(16)| | = 20 | = 16 | = 10 | +--------------+---------+---------+--------+ | oct(17) = 21 | 20,21 | 16,21 | 10,21 | | dec(17) = 17 | 20,17 | …

10
素因数エンコーディング
エンコードの仕組み ビットのリストが与えられた場合: プライムを保持する(で始まる2) リストを持っている 入力の各ビットに対して 前のビットと同じ場合、保持している素数をリストに追加します 異なる場合は、次の素数を保持してリストに追加します リスト内のすべての数値の積を返します 最初のビットについては、前のビットが 0 注:これらの手順は説明のみを目的としており、従う必要はありません。 例 Input: 001 hold 2 0: add 2 to the list 0: add 2 to the list 1: hold 3, add 3 to the list list: 2,2,3 Output: 12 Input: 1101 hold 2 1: hold 3, add 3 to …

9
部屋に参加する
それで、ダンジョンの地図、たとえば、 ########## # ##### # ##### ########## ########## ########## ########## #### ## #### ## ########## ヒーローが部屋A(左上)にいて、彼らの目標(苦しんでいる王子様?)が部屋B(右下)にいるとしましょう。このマップでは、ヒーローが目標に到達することはできません。 通路を追加する必要があります... ########## # ##### # ##### ####.##### ####.##### ####.##### ####.##### #### ## #### ## ########## そこに、はるかに良い! ルール ダンジョンマップ(ハッシュとスペースで構成され、行が改行文字で区切られている)を受け入れるプログラムまたは関数。 スペース文字間の直接パス上にあるすべてのスペース内の通路を示すためにドットが追加されたマップを出力します。 行の長さや行数は変更されません。 通路はすべて、スペースからスペースへの直線です。 通路は角を曲がれない スペースとマップの端の間にはありません。 任意の言語を使用します。 最小バイトで変換を実行してください。 通路を描画できない場合は、マップをそのまま返します。 マップには常にすべてのエッジの周りにハッシュが必要です(エッジのスペースを処理する必要はありません)。 入力マップは常に長方形で、各行は同じ幅でなければなりません。 テストケース #### #### # # => …

10
多かれ少なかれ出力数
チャレンジ とで構成される入力文字列(または配列)が与えられる<と>、次のような整数のシーケンス(配列または文字列)を出力します。 出力内の連続した数字の間に順番に適用すると、演算子はすべて正しい すべての整数は正(1以上) 整数の合計は数学的に可能な限り小さい 入力は、選択した言語の「より大きい」と「より小さい」に一致するように変更できます。 代替出力として、出力の数値の合計を指定するだけです。アンサータイトルに解決するバージョンを明記してください。 通常の除外とルールが適用され、最小バイトが優先されます。 入力文字列があなたの言語で整数オーバーフローを引き起こすことは決してないと仮定できます。 例 >与え2 1に合計しました3 >>>与え4 3 2 1に合計しました10 ><与え2 1 2に合計しました5 与え1に合計しました1 >>>>>>>>>与え10 9 8 7 6 5 4 3 2 1に合計しました55 >><<>><>>>与え3 2 1 2 3 2 1 4 3 2 1に合計しました24 ><>><>><>与え2 1 3 2 1 3 2 1 2 …

21
これは階段番号ですか?
チャレンジ: 指定された番号がaを形成するnumber staircaseかどうかを確認します 入力: 整数(10進数ではなく0より大きい)。注:入力は、文字列、数字の配列として取得できます。 出力: 数値が階段を形成するかどうかに応じた真実/偽の値 番号階段: 数の階段は、左から右に読んで整数です。 1から始まる 後に2が続く場合があります 3が続く場合があります などなど n その後、数字はn-1から始まります その後、n-2 その後、n-3 1に達するまでなど 注意 : することができる部分をそのままの順序が従わなければならない場合は長場合> 1より大きいことを示すために使用されます。すなわち:12321 例: 12321 ---> true 12345654321 ---> true 9 ---> false 1 ---> true 2 ---> false 123421 ---> false 112312318901323 ---> false 123456789101110987654321 ---> true 注意 : 指定された入力は常に0より大きい整数であり、小数ではありません。出力truthy …

10
ランニングで数を制限する
自己制限リスト 非負の整数を含む空でないリストLを考えます。実行中のLは長くすることができないに等しい要素の連続したサブリストです。たとえば、[0,0,1,1,3,3,3,2,1,1]の実行は[0,0]、[1,1]、[3,3,3]、[2 ]、[1,1]。リストLは、各整数N≥1について、Nの出現回数がN-1の実行回数以下の場合、自己制限的です。上記のリストは1が4回出現しますが、0の実行は1回だけなので、自己制限的ではありません。 自己制限リストの例を次に示します:[0,0,3,4,1,0,2,1,1,0,2,1,0,0,0,1,0]。持っている 5つのラン0と5つの出現1、 4回の1回の実行と2回の2回の実行、 2つの実験2との1つの発生3、 1回の3回の実行と1回の4回の実行、 4回1回実行、5回は発生しない、 他の整数は発生しません。 タスク あなたの仕事は、リストが自己制限的であるかどうかを決定することです。より明示的には、入力は負でない整数の空でないリストでなければなりません。リストが自己制限的である場合、出力は真実です。それ以外の場合は、偽造されます。入力と出力は任意の合理的な形式にすることができます。 各プログラミング言語の最小バイト数が勝者です。標準のコードゴルフ規則が適用されます。 テストケース 真実のインスタンス: [0] [1,0] [0,1,1,0,2] [3,1,1,0,0,2,0,0] [5,0,4,1,3,0,2,2,0,1,1,1,0] [0,0,1,1,0,0,1,1,0,0,2,2,0,0] [6,0,0,0,2,2,1,0,5,0,3,4,0,1,1,1] [5,0,1,0,0,0,0,4,0,3,1,1,1,2,2,0,0,0,0,0] [4,5,1,3,2,0,5,2,0,3,0,1,0,1,0,0,0,1,0,0,1,0,3,4,4,0,2,6,0,2,6] [0,4,1,3,10,6,0,1,3,7,9,5,5,0,7,4,2,2,5,0,1,3,8,8,11,0,0,6,2,1,1,2,0,4] 偽のインスタンス: [2] [1,1,0] [0,0,1,1,1,0,0,2] [0,1,0,1,1,2,2,3,0,0,4,6] [1,1,2,1,2,0,2,0,3,0,0,2,2,1,2,3,2,0,1,1,1,0,0,3,3,0] [3,4,1,0,0,0,5,5,0,2,2,0,0,0,0,0,2,0,1,1,0,4,3,5,4,3] [1,0,0,0,2,5,3,1,1,0,3,3,1,3,5,4,0,4,0,0,2,0,2,1,1,5,0,0,2,4,4,0,2,0,1,4,4,2,3,3,5,3,4,0,2,0,5] [4,3,1,0,0,4,6,6,1,0,1,2,1,3,0,1,0,2,0,3,4,0,2,1,1,3,0,2,2,2,0,5,5,0,5,2,5,5,0,4,3,2,3,1,1,3,5,1,4,1,6,2,6,2,4,0,4,0,4,5,3,3,0,0,6,1,0,0,0,6,2,1,0,1,2,6,2,4] [5,1,1,1,0,2,0,6,1,0,2,1,2,2,5,3,1,0,0,0,3,2,3,0,1,1,0,1,0,1,1,2,0,6,4,1,2,1,1,6,4,1,2,2,4,0,1,2,2,1,3,0,1,2,0,0,0,2,0,2,2,0,1,0,0,1,3,0,0,0,6,2,0,1,0,1,2,1,1,1,0,4,0,0,5,2,0,0,0,4,1,2,2,2,2,0,5,3,2,4,5,0,5]

14
多面体のオイラーポアンカレ特性
所定の三角測量多面体の表面のp、そのオイラー・ポアンカレ特性計算χ(p) = V-E+F、V頂点の数、あるEエッジの数とF顔の数。 詳細 頂点はとして列挙され1,2,...,Vます。三角形分割はリストとして指定されます。各エントリは、時計回りまたは反時計回りの順序で指定された1つの面の頂点のリストです。 名前にもかかわらず、三角形分割には3面以上の面を含めることもできます。面は単純に接続されていると想定できます。つまり、各面の境界は、1つの閉じた非自己交差ループを使用して描画できます。 例 テトラヘドロン:この四面体が凸であるとありχ = 2。可能な三角形分割は [[1,2,3], [1,3,4], [1,2,4], [2,3,4]] 立方体:この立方体は凸面で、を持っていχ = 2ます。可能な三角形分割は [[1,2,3,4], [1,4,8,5], [1,2,6,5], [2,3,7,6], [4,3,7,8], [5,6,7,8]] ドーナツ:このドーナツ/トロイド形状にはがありχ = 0ます。可能な三角形分割は [[1,2,5,4], [2,5,6,3], [1,3,6,4], [1,2,7,9], [2,3,8,7], [1,9,8,3], [4,9,8,6], [4,5,7,9], [5,7,8,6]] ダブルドーナツ:このダブルドーナツにはが必要χ = -2です。これは、上のドーナツの2つのコピーを使用して構築され[1,2,5,4]、最初のドーナツの側面[1,3,6,4]と2番目のドーナツの側面を識別します。 [[2,5,6,3], [1,3,6,4], [1,2,7,9], [2,3,8,7], [1,9,8,3], [4,9,8,6], [4,5,7,9], [5,7,8,6], [1,10,11,4], [10,11,5,2], [1,10,12,14], [10,2,13,12], …

13
そこで、私は(はさみで)それを壊した
チャレンジ 切断規則と別の文字列を記述する文字列が与えられた場合、最初の文字列によって記述された規則を使用して、2番目の文字列から一部を切り取ります。 両方の文字列は、文字a-zまたはのA-Zいずれかを選択します(同じ方法で表す必要はありません)。2番目の文字列を変更する方法を以下に説明します。 アルゴリズム 最初の文字列を取得し、隣接しない(増加する)文字間のギャップを=;で埋めることを想像してください。たとえば、abcfg=> abc==fg。次に、2つの文字列を並べて、等号の上にない最初の文字列のすべての文字を返します。例えば、所与abcfgおよびqrstuvw入力として: qrstuvw - Modify abc==fg - Modifier qrs--vw -> qrsvw 等号で埋めた後の修飾子が短い場合、2番目の文字列のすべての後続文字を含める必要があります。修飾子が長い場合、末尾の文字は無視されます。 修飾子はソートされることを保証されていません。 テストケース abcfg, qrstuvw -> qrsvw abqrs, qwertyuiopasdfghjklzxcvbnm -> qwjklzxcvbnm za, qr -> qr azazaz, qwertyuioplkjhgfdsazxcvbnmnbvcxzasdfghjklpoiuytrewq -> qmn 参照実装(テストケースの生成に使用)-> TIO ルール 標準的な抜け穴が適用されます 入力は、2つの文字列、2つの文字のリスト、文字のマトリックスなどとして受け取ることができます(他の合理的な形式も受け入れられます) 文字列または文字のリスト(または文字列の他の標準形式)として出力できます これはcode-golfであるため、各言語のバイト単位の最短回答がその言語の勝者として宣言されます。回答は受け付けられません。 どちらの文字列も空にすることができます。 ハッピーゴルフ! Kevin Cruijssenの最近の2つの課題に触発され、「そこに、私はそれを修正しました(テープ / ロープで)」
15 code-golf  string 

12
この課題は再帰(警官のスレッド)に関するものです
警官のスレッド このスレッドでのタスクは、再帰ベースのプログラム/関数を作成して整数系列を生成することです。強盗は、強盗のスレッドでより短い非再帰的な解決策を見つけようとします。 チャレンジの概要 多くの言語では、再帰関数はプログラミングタスクを大幅に簡素化できます。ただし、適切な再帰の構文オーバーヘッドにより、コードゴルフでの使いやすさが制限される場合があります。 COPSは、単一の整数服用プログラムや関数作成するn最初の生成され、n整数系列のエントリをのみ再帰使用1。また、エントリを安全としてマークするために、シーケンスを生成する短い非再帰的な方法があることを確認する必要があります。 強盗は見つけようとします短く、同じ整数シリーズを生成し、同じ言語でプログラムまたは機能を一切再帰使用していない2。 警察官の提出物が10日(240時間)以内にクラックされない場合、警察官は独自の解決策を明らかにすることにより、より短い非再帰的アプローチが実際に可能であったことを証明します。その後、提出物を安全とマークすることがあります。 copsチャレンジの勝者は、安全とマークされた最短の(code-golfによる)再帰ベースのサブミッションです。 強盗チャレンジの勝者は、ほとんどのソリューションをクラックした強盗です。 1:構文が再帰的であれば十分です。テールコールの最適化などを心配する必要はありません。 2:繰り返しますが、構文は非再帰的です。そのため、末尾呼び出しの最適化のおかげで、再帰的なソリューションを投稿し、ループにコンパイルされたと主張することはできません。 提出要件 各提出には、単一の整数n(ゼロベースまたは1ベース)が必要です。送信するとn、選択した整数シリーズの最初のエントリが出力または返されます。(この整数系列はに依存してはならないことに注意してくださいn)。入力方法と出力方法は、再帰的アプローチと非再帰的アプローチで異なる場合があります。整数シリーズは、長さが5以上の任意の確定的シリーズです。シリーズは適切に説明する必要があります。 あなたの提出は任意の大規模nで働く必要はありませんが、少なくとも働くはずn=5です。非再帰的アプローチは、少なくともn再帰的アプローチと同じか、最大でn=2^15-1、どちらか小さい方まで機能する必要があります。 再帰 この課題のために、再帰は、それ自体を呼び出す関数(または関数に似た構造)を使用して目的のシーケンスを作成することとして定義されます(または、それ自体を呼び出すことになる関数のシーケンスを呼び出します。これには、Yコンビネーターのような構造が含まれます)。再帰の深さは、無限大になるnにつれて無限大になるはずです。非再帰的アプローチは、再帰的ではないものです。

6
ストリングレプリケーター
Vimのでは、あなたが番号を前置することにより、コマンドを繰り返すことができ、同様3ddに相当しますdd dd dd。さて、この繰り返しパターンはVimコマンドに限定されません。文字列もこの方法で複製できます。 仕様: 入力として、数字、アルファベット文字(大文字と小文字の両方)、およびスペースのみで構成される文字列を指定し、オプションで末尾の改行を使用して、次のジョブを実行するプログラムを作成します。 各「単語」は数字とアルファベットで構成されます。文字の前に数字が付いている場合(数字に複数の数字があるか、数字がゼロの場合)、その文字を指定された回数だけ繰り返します。例えば: a2bc -> abbc 3xx1yz -> xxxxyz 10ab0c0d0e -> aaaaaaaaaab # No 'cde' because there's a zero 2A2a2A2a -> AAaaAAaa 単語はスペースで区切られます。隣接する2つの単語ごとに最大1つのスペースがあります。 簡単ですね。追加のものは次のとおりです。 スペースの前に数字がある場合は、指定された時間だけ次の単語を繰り返します。番号は常に前の単語の末尾、または文字列の先頭に添付されます。例: a2bc3 2d -> abbc dd dd dd 3 3a -> aaa aaa aaa 33a -> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0 abcd0 efgh3 2x -> xx …
15 code-golf  string 

15
モジュロパリティパーティ
n≥2のn個の厳密に正の整数の配列Aが与えられます。 あなたの仕事は、各エントリA iを以下にマップすることです: 1場合A J MOD A iが各奇数であるJように1≤J≤N及びJ≠I A j mod A iが1≤j≤nかつj≠iであるようなjごとに偶数の場合は2 そうでない場合は0(混合パリティ) 例 用A = [73、50、61] 、我々が持っています: = 50 MOD 73 50、61 MOD 73 = 61 →混合 = 73 MOD 50 23、61 MOD 50 = 11 →すべての奇数 = 73 MOD 61 12、50 MOD 61 = 50 →全ての偶数 したがって、予想される出力は[0、1、2]です。 …

17
または、2D配列の列と行をシフトします
目的 任意のサイズの2D配列が与えられた場合、列と行を交互にシフトするプログラムまたは関数を作成します 例 a b c d e f g h i j k l m n o 内のすべての要素最初の列シフトダウン一列、第二列シフトアップ一列、第三のシフトダウン彼らはエッジを1行ように、ラッピングに到達したとき。 k g m i o a l c n e f b h d j 最初の行のすべての要素は右にシフトし、2番目は左に、3番目は右に、など、端に達すると折り返されます。 o k g m i l c n e a j f b h d …

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