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

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

30
デジタルルートの反対!
[アナログルート]とも呼ばれます (デジタルルートの反対!);) 数値のデジタルルートは、1桁になるまでその数字を連続的に合計したものです。たとえば、89456のデジタルルートは次のように計算されます。 8 + 9 + 4 + 5 + 6 = 32 3 + 2 = 5 89456のデジタルルートは5です。 STDINを介して入力として数字を指定すると、そのデジタルルートを持つ可能性のあるすべての2桁の数字を出力/返します。あなたがそれを必要とするなら、それはそれ自身を含めることができます、例えば05 これらはすべて可能な入力と出力です。 (数字自体に先行ゼロを含めるかどうかを選択できます) I / O 0 => 0または00または何もない 1 => 01および/または1、10、19、28、37、46、55、64、73、82、91-1が100を返さないことを確認する 2 => 02および/または2、11、20、29、38、47、56、65、74、83、92 3 => 03および/または3、12、21、30、39、48、57、66、75、84、93 4 => 04および/または4、13、22、31、40、49、58、67、76、85、94 5 => 05および/または5、14、23、32、41、50、59、68、77、86、95 6 => 06および/または6、15、24、33、42、51、60、69、78、87、96 7 => 07および/または7、16、25、34、43、52、61、70、79、88、97 …

30
文字列内の文字の最長実行
あなたの課題:文字列s、文字を受け取り、inのc最長実行の長さを見つける関数を作成します。実行の長さはになります。csl ルール: 場合はs長さが0であるか、c空である、l0にしてください。 cin のインスタンスがない場合、0 sでlなければなりません。 標準の抜け穴と標準のI / Oルールが適用されます。 s sの実行中cの場所に関係lなく、同じである必要があります。 印刷可能なASCII文字は、sとに表示できますc。 テストケース: s,c --> l "Hello, World!",'l' --> 2 "Foobar",'o' --> 2 "abcdef",'e' --> 1 "three spaces",' ' --> 3 "xxx xxxx xx",'x' --> 4 "xxxx xx xxx",'x' --> 4 "",'a' --> 0 "anything",'' --> 0 勝者: コードゴルフと同様に、各言語の最短回答が勝ちます。
19 code-golf  string 

2
これらのリストは同等ですか?
ご存じのとおり、pythonにはリストがあります。知らないかもしれませんが、これらのリストには自分自身を含めることができます。 a = [] a.append(a) Python 2 Python 3 これらはクールで、あなたがそれらでできる面白いことがたくさんありますが、それらを比較することはできません。 a = [] a.append(a) b = [] b.append(b) a == b Python 2 Python 3 仕事 あなたの仕事は、Python(またはpythonオブジェクトを直接処理できる任意の言語)で関数を記述し、それ自体を含む2つのリストを取得して比較することです。 2つのリストが同じ長さであり、番号のシーケンスが存在しない場合、そのシーケンスで両方のリストにインデックスを付けると、2つのオブジェクトは、この等しいという定義の下で等しくなくなります。リストに含まれるすべての非リストオブジェクトは、簡単にするためにPython整数になります。整数のPythonの組み込みの同等性と比較する必要があります。 リストが無限に深いかどうかを判断するために、プログラムは Pythonの再帰の深さに依存してはなりません。あれは: def isInfinite(a,b): try: a==b return False except RunTimeError: return True 2つのリストが自己参照であるかどうかを判断する有効な方法ではありません。 テストケース 関数を定義すると仮定します equal a = [] a.append(a) b = …

20
最初にあなたと一緒に
「force」のすべての出現を「first」に、「first」のすべての出現を「force」に置き換えて、すべての文字位置の元の大文字小文字を保持するプログラムを作成します。 "ForcefoRcefOrcE" -> "FirstfiRstfIrsT" "FirstfiRstfIrsT" -> "ForcefoRcefOrcE" 文字列の残りは変更されないままである必要があるため、プログラムを2回実行すると元の文字列が返されます。 "thirst of forces" -> "thirst of firsts" -> "thirst of forces" プログラムは、任意の初期文字列で動作するはずです。したがって、ヒントとして、中間表現としてマジックキャラクターを使用することは避けた方がよいでしょう。3パス置換("force" -> "zzzzz", "first" -> "force", "zzzzz" -> "first")を試みると、を含む文字列では失敗するから"zzzzz"です。 プログラミング言語によるストリングの定義で許可されているすべての文字をサポートする必要があります(ほとんどの場合、Unicodeです)。例、非印刷文字(\ u + 4桁)にJSONスタイルの表現を使用する: "\u0000\u0001\u0002\u0003the Force of the firsT" | V "\u0000\u0001\u0002\u0003the First of the forcE"
19 code-golf  string 

11
Seventy Seven Sevens
数nと上限のlリストを指定すると、長さが7桁以下で構成される2つ以上の数を乗算することで作成できる数nが未満になりlます。A161145はこの課題に近いですが、7、77、777、7777、77777などは含まれません。 例 n=anything, l<49 結果として: [] n=1, l=49 結果として: 7*7=49 f(1,49)=[49] n=1, l=343 結果として: 7*7 =49 7*7*7 =343 f(1,343)=[49,343] n=2,l=6000 結果として: 7*7 =49 7*7*7 =343 7*7*7*7=2401 7*77 =539 7*7*77 =3773 77*77 =5929 f(2,6000)=[49,343,539,2401,3773,5929] n=3, l=604000 結果として: [49, 343, 539, 2401, 3773, 5439, 5929, 16807, 26411, 38073, 41503, 59829, 117649, 184877, …

6
矛盾するポリグロット
まあ、誰もがポリグロットを愛しています。標準形式の入力(ハードコーディングなし)で2つの整数が与えられます。あなたの仕事は、ある言語の最小値と他の言語の2つの数値の間の最大値を見つけて、次の操作を実行するポリグロットを書くことです。 最大値を見つけるコードは、それらの合計も計算する必要があります。 最小値を見つけるプログラムは、減算の結果も計算する必要があります(max - min) ここに「トリッキーな部分」があります:2つの数値が等しい場合、両方のプログラムは何も出力/返してはなりません(STDOUTおよびSTDERR/または他のreturnメソッドの両方 ) フォーマットの詳細については、出力仕様のセクションをご覧ください 入力 上記のように、両方の言語に共通の標準メソッドで入力として使用される2つの整数。 出力仕様 を見つけるプログラムのmax場合、形式は次のようになります。max_value, addition result を見つけるプログラムのmin場合、形式はmin_value, subtraction result (max - min) 結果は、(任意の明確な区切り文字で、印刷することができ、\n、,または任意の他、あなたが欲しい)、区切り文字で2つの期待値を含む文字列として、または数字(例:のリストとして関数から返さ[max_value,sum]) 例: Input || Max Language Output || Min Language Output 100, 40 || 100, 140 || 40, 60 63, 67 || 67, 130 || 63, 4 -45, -5 || …

30
偽りを半減させる
仕事 所与の非空の配列0と1、のランの長さを半減させます0。 入力 配列0と1。許容される形式: あなたの言語の実際の配列 0およびの改行区切り文字列1 連続した文字列0と1 その他の合理的な形式 たとえば、次の3つの入力はすべて受け入れられます。 [1, 0, 0, 1] "1\n0\n0\n1"(\n改行はU + 000Aです) "1001" のラン0は偶数の長さであると仮定できます。 出力 上記の受け入れ可能な形式の0との配列1。 テストケース input ↦ output [1,0,0,1,0,0,1] ↦ [1,0,1,0,1] [1,1,0,0,1,1,0,0,1] ↦ [1,1,0,1,1,0,1] [1,1,0,0,1,1,1,0,0,1,1] ↦ [1,1,0,1,1,1,0,1,1] [1,1,1] ↦ [1,1,1] [0,0,1] ↦ [0,1] [0,0] ↦ [0] [1,1,1,0,0,0,0,1,1,1,1,0,0,1,0,0,1,1,0,0,1,1,1,1,0,0,1,0,0] ↦ [1,1,1,0,0,1,1,1,1,0,1,0,1,1,0,1,1,1,1,0,1,0] 得点 これはcode-golfです。バイト単位の最短回答が優先されます。 標準の抜け穴が適用されます。

2
タオルを折ります!
私はどこかで、技術ではまだできないことの一つに、折り畳み式タオルがあると聞きました1。そのため、このステートメントが偽であることを証明するのは今やあなたの仕事です! 入力として文字列を指定すると、次のように長方形(タオル)で構成され、各タオルを半分に2回折ります。例えば: +------+ +------+ +--+ | | | | | | | | | | | | | | -> +------+ -> +--+ | | | | | | +------+ タオルを折り畳むとき、最初に折り畳まれ、次に左から右に折り畳まれていることに注意してください。プログラムもこの動作を模倣する必要があります。また、テストケースでは、タオルは同じ場所にありますが、折りたたまれています。 ルール: 入出力の標準的な方法。 標準の抜け穴が適用されます。 入力と出力は文字列でなければなりません。 タオルが互いに対して適切な場所にある限り、出力では何でも問題ありません。 タオルの各辺の長さは常に2で割り切れると仮定できます。 入力として渡されるタオルは常に長方形になります。 タオルは常に分離されますが、可変量で分離される場合があります。 code-golfなので、最短のコードが勝ちます! テストケース: Input: +------+ | | | | | | | …

9
文字化けした電話番号
ボイスメールメッセージをどのように受け取り、その人の接続がうまくいかなかったことは知っていて、電話をかける方法を見つけようとしていますが、それが「5」か「8」かはわかりません前記? それがこの挑戦です。 良いニュースは、発信者が番号を2回読み上げたことですが、両方の場所で文字化けしています。 プログラムは次のように入力する必要があります。 5551231234 / 5551231234 最初の10桁が電話番号がボイスメールで最初に言われ、2番目のセットが2回目に言われたときです。のみ...次のようになります。 555?ABC1_36? / 55?522_1?234 数字に疑問符が続くことは、それがその数字の最良の推測であることを意味します(例えば、「5?」は「おそらく5、繰り返しと比較」を意味します)。 アンダースコアは、既知の欠落している数字を示します。これは、静的によってファジングされすぎて解読できないものです。 文字はそれだけです:文字。それらをそれぞれの数字として扱います ABC-> 2、DEF-> 3、GHI-> 4、JKL-> 5、MNO-> 6、PQRS-> 7、TUV-> 8、WXYZ-> 9 サンプル入力はすべて大文字を使用します(ToUpper()呼び出しは安全に省略できます) 言語が小文字でうまく機能する場合は、入力に小文字を自由に使用し、ToLower()呼び出しを省略できます。あなたの答えに注意してください。 さらに、次の判断呼び出しを想定できます。 5? / _ -> 5 //5 is the best guess we have, use it 5? / 5? -> 5 //uncertain, but matching 5? / …
19 code-golf  cipher 

2
アイランドゴルフ#2:風変わりな隠者
これは、一連のアイランドゴルフチャレンジの2番目です。前の挑戦 2つの隠者が砂漠の島に到着しました。彼らは孤独を求めてやって来たので、彼らはお互いにできるだけ遠くに住みたいと思っています。彼らは彼らの間の歩行距離を最大にするために彼らの小屋をどこに建てるべきですか? 関連読書 入力 入力は、土地と水を表す2つの文字で構成される長方形のグリッドになります。以下の例では、土地はで#あり、水はです.。ただし、任意の2つの異なるキャラクターを使用できます。 ........... ...##...... ..#####.... ..#######.. .#########. ...#######. ...#####.#. ....####... ........... 常に少なくとも2つの土地タイルがあります。土地のタイルはすべて連続しています(つまり、島は1つだけです)。水タイルも連続しています(つまり、湖はありません)。グリッドの外側の境界線はすべて水タイルになります。ランドタイルは斜めに接続されません。つまり、次のようなものは表示されません。 .... .#.. ..#. .... 出力 コードは、2つの小屋の場所がマークされた同じグリッドを出力する必要があります。以下の例では、小屋の場所にXのマークが付けられていますが、土地や水のキャラクターと区別できる限り、任意のキャラクターに置き換えることができます。 小屋の場所は、それらの間の歩行距離を最大化するように選択された2つの土地タイルでなければなりません。歩行距離は、2つのポイント間の完全な陸上の最短経路の長さとして定義されます。ランドタイルは、水平方向または垂直方向に隣接していると見なされますが、斜めではありません。 上記の島の可能な解決策: ........... ...X#...... ..#####.... ..#######.. .#########. ...#######. ...#####.X. ....####... ........... これらの2つのポイント間の歩行距離は11で、この島の任意の2つのポイント間の最大距離です。別のdistance-11ソリューションがあります。 ........... ...##...... ..X####.... ..#######.. .#########. ...#######. ...#####.X. ....####... ........... 詳細 あなたの解決策は、完全なプログラムまたは機能かもしれません。いずれかのデフォルトの入力と出力の方法が許容されています。 入力と出力は、複数行の文字列、文字列のリスト、または2D配列/文字のネストされたリスト/単一文字の文字列です。出力には、(オプションで)単一の末尾改行がある場合があります。上記のように、代わりに3つの異なる文字#.Xを使用できます(使用する文字を提出時に指定してください)。 テストケース A.ユニークな小屋の配置がある島: .... .##. .... …

3
大きなベース、小さな数字
J言語には、定数を指定するための非常に愚かな構文があります。特に、1つのクールな機能、つまり任意のベースで記述できる機能に焦点を当てたいと思います。 任意の数字と英数字の文字列を記述XbYするXとY、JはYベースX番号として解釈されます。ここで0through 9は通常の意味を持ち、throughは10〜35 aをz表します。 そして、私がX数字を言うとき、私は数字を意味します。この質問の目的のためにX、正の整数に制限しますが、Jでは、負の数、分数、複素数など何でも使用できます。 奇妙な事はことであるあなただけの0から35までの数字を使用することができ、使用可能な記号のあなたのコレクションが構成されているので、お使いのベース-どんな数字としてのみ 0-9とAZの。 問題 この方法を使用して、2,933,774,030,998のようなゴルフマジックナンバーを支援するプログラムが必要です。まあ、大丈夫、そんなに大きくないかもしれません、私はあなたに簡単に行きます。そう... あなたの仕事は(通常大きい)進数を取るプログラムまたは機能記述することですN1及び4,294,967,295(= 2との間に32の形の最短表現入力として-1)、及び出力/戻りXbY、X正の整数であるとYされています英数字(0〜9およびa〜z、大文字と小文字を区別しない)で構成Yされ、X等しいと解釈される文字列N。 すべての表現XbY表現の長さがの桁数以上である場合、代わりにN出力しNます。他のすべての関係では、最短表現の空でないサブセットを出力できます。 これはコードゴルフですので、短いほど良いです。 テストケース Input | Acceptable outputs (case-insensitive) ------------+------------------------------------------------------- 5 | 5 | 10000000 | 79bkmom 82bibhi 85bgo75 99bauua 577buld | 620bq9k 999baka | 10000030 | 85bgo7z | 10000031 | 10000031 | 12345678 | 76bs9va 79bp3cw 82bmw54 86bjzky 641buui …

4
フェルマーの因数分解ヘルパー
半素数を因数分解したい。この課題の目標は、u v NをFermatの方法で簡単に因数分解できるように2つの小さな整数uとvを見つけ、Nの因子を簡単に差し引くことです。NNNuuuvvvu v NuvNuvNNNN タスク 半 素数と正の整数kが与えられた場合、xとyを次のように定義します。NNNkkkバツバツxyyy Y=X2-KNX = ⌈ K N−−−√⌉バツ=⌈kN⌉x=\lceil\sqrt{kN}\rceil y= x2− k Ny=バツ2−kNy=x^2-kN ステップ#1- kを見つけるkkk まず、yが平方数(別名完全平方)になるように、最小値を見つける必要があります。kkkyyy これにより、フェルマーの因数分解法の 1回の反復でを因数分解できます。より具体的には、これはすぐにつながります:k NkNkN k N= (x + y√)× (x − y√)kN=(バツ+y)×(バツ−y)kN=(x+\sqrt{y})\times(x-\sqrt{y}) (更新:このシーケンスは現在A316780として公開されています) ステップ#2- kの因数分解kkk 次に、次のような2つの正の整数およびvを見つける必要があります。あなたはあなたはuvvv c u = x + √u v = kあなたはv=kuv=k dはV=X- √c u = x + …

8
ペンローズトライアングルコードゴルフ
ペンローズの三角形もペンローズのtribar、または不可能tribarとして知られているが、不可能なオブジェクトです。 このチャレンジの目標は、可能な限り少ないバイト数でペンローズの三角形を表示することです。 ソース:ウィキペディア ルール: ペンローズトライアングルは、生成後にデジタル表示する必要があります。 画像を直接表示せずに、Wikiページの上の画像(上記のソース)と同じように見える必要があります。 同じ配色の同じ画像は、少なくとも400x400サイズで表示する必要があります。 できるだけ正確である必要があります。 頑張って楽しんでね!

18
シンプルなラインエディターを作成する
In:改行なしの文字列* ユーザーが行を編集および送信できるようにします Out:変更された文字列(オプションで末尾に改行が付きます) 行エディタは、少なくともユーザーに以下を許可する必要があります。 表示カーソルを左右に移動します カーソル位置に文字を挿入および/または上書きする カーソル位置の文字を削除します 新しい文字列を送信します。つまり、編集を中止すると、変更された文字列が返される/印刷される/表示される/保存される…(他のテキストなし) 感謝しますが、必須ではありません: コードの説明。 プログラム/機能を実証できるオンラインテストサイトへのリンク 使用法を示すアニメーション画像(たとえば、TIOは対話性を許可しません) 注意: キーバインディングは提案のみです GUIまたは視覚的なスタイリングは必要ありません 例 以下では、カーソルはで示されてい_ます。 In: Just some text ユーザーに編集を許可: Just some text_ ユーザーが←(左矢印キー)を9回 Just ̲some text 押すユーザーがDel4回 Just ̲ text 押す ユーザーが押すユーザーがOutを押す:any Just any_text Enter Just any text In: Remove me ユーザーに編集を許可: Remove me_ ユーザーがBackspace9回 _ 押すユーザーがOutを押す:(空の文字列)Enter …

16
フロートをモッズ!
3Dモデリングソフトウェアは、主にUVマッピングを使用してテクスチャを3Dオブジェクトにマッピングします。UとVの両方の有効な値は、通常、包括的[0..1]範囲にあります。 チャレンジ 非常に使いやすい新しい3Dモデリングソフトウェアを購入しました。ただし、1つの問題があります。UV値からランダムな整数を加算または減算します。あなたの仕事は、入力値を変更して包括的な[0..1]範囲の浮動小数点値を取得するプログラムまたは関数を作成することです。 結果のフロートは、元と同じ小数部分を持ち、可能な限り元に近いはずです。両方のため0と1出力範囲にある、以下の任意の整数0又は0に変更する必要があり、任意の整数1以上を1に変更しなければなりません。 JavaScriptのアルゴリズムの例: function modFloat(input) { while (input < 0 || input > 1) { if (input < 0) input += 1; if (input > 1) input -= 1; } return input; } ルール 入力は単一の整数または浮動小数点値です。回答で指定されている限り、任意の合理的な形式が許可されます。 出力は、float値の10進表現でなければなりません。 出力精度は、少なくとも入力と同じ小数点以下である必要があります。 末尾のゼロは許可されます。 整数入力に対して出力するコードを0または1のいずれかが正しく選択していることを確認してください。 テストケース Input | Output ------------+--------- -4 | 0 -1 …
19 code-golf 

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