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

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

30
三角形を数えます!
私たちは「二乗」という用語に使用されているn個の計算を意味するように、N 2を。また、「立方体」nという用語は、n 3を意味します。そうは言っても、なぜ私たちも数字を三角形にできないのでしょうか? 数字を三角形にする方法は? まず、数字を選びましょう53716。 以下に示すように、辺の長さが数字の桁数に等しい平行四辺形に配置し、2つの辺を斜めに配置します。 53716 53716 53716 53716 53716 さて、それをΔにしたいですね これを行うには、直角三角形に収まらない辺をトリミングします。 5 53 537 5371 53716 この例では、各行の合計を取得し[5, 8, 15, 16, 22]ます: 5-> 5 53-> 8 537-> 15 5371-> 16 53716-> 22 リストを合計して[5, 8, 15, 16, 22]、結果をにし66ます。これはこの数字の三角形です! 仕様とルール 入力は、負でない整数n(n≥0、n∈Z)になります。 入力を受け取り、許可された手段で出力を提供できます。 入力は、整数、整数の文字列表現、または数字のリストとしてフォーマットできます。 デフォルトの抜け穴は許可されていません。 これはcode-golfなので、バイト単位の最短コードが勝ちです! その他のテストケース 入力->出力 0-> 0 1-> 1 …

24
2つの数値の合計、積、差を結合する演算子
チャレンジ: ソーシャルネットワークには、次のような馬鹿げたパズルが流れています。 8 + 2 = 16106 5 + 4 = 2091 9 + 6 = ? 2つの正の整数与えられた場合、その関数又は演算子を実装xし、yそのようなことはx > y > 0、のように正しい答えを与える整数答えの桁の数字である、x * yの数字が続くx + yの数字が続きますx - y。とても簡単です。 ルール: 標準の抜け穴は許可されていません。 これはコードゴルフなので、バイト単位の最短コードが優先されます。 入力データの検証がされていない必要。このプログラムは、無効な入力が与えられるとクラッシュするか、ゴミを返す可能性があります。 数値関数と演算子(整数と浮動小数点、数学ライブラリ関数、および数値を受け取って返す他の関数を含む)を使用できます。 必要に応じて、数値の桁数を返す関数を使用できます。 コード内の任意の場所で文字列または任意の種類の連結を使用することはできません。 結果は、言語で適用されるいずれかで返されるか、スタックにプッシュされる場合があります。結果は文字列ではなく整数でなければなりません。 サンプルコード: Dyalog APL: 次のコードは、という名前の2項演算子を作成しますX。 X←{(⍺-⍵)+((⍺+⍵)×10 * 1 +⌊10⍟⍺-⍵)+⍺×⍵×10 *(2 +⌊10⍟⍺+⍵)+⌊10⍟⍺- ⍵} 説明: APLでは、右から左に評価します。 ⍺ …

20
シーケンスにない整数の合計のシーケンス
バックグラウンド 次のように定義されたシーケンスを検討してください。 最初の要素は0です。 2番目の要素は4です。 3番目の要素以降、その値は次のように計算できます。 0からシーケンスの前の要素までの整数のセット(包括的または排他的、重要ではありません)を取得します。 シーケンスの前の方で既に出現した整数をセットから削除します。 セットの残りの要素を一緒に追加します。それがあなたが望む値です。 興味深いことに、このシーケンスはまだOEIS上にないようです。 タスク 入力として整数nを取り、シーケンスのn番目の要素を出力するプログラムまたは関数を作成します。 テストケース シーケンスの最初のいくつかの要素は次のとおりです。 0 4 6(1 + 2 + 3) 11(1 + 2 + 3 + 5) 45(1 + 2 + 3 + 5 + 7 + 8 + 9 + 10) 969(1 + 2 + 3 + 5 + …

9
MおよびS文字で構成されたASCIIアートウィンドウを検出する
ウィンドウは、奇数の辺の長さが少なくとも3のASCIIアートの正方形で、エッジの周りに1文字の境界線があり、中央に垂直および水平のストロークがあります。 ####### # # # # # # ####### # # # # # # ####### MSウィンドウは、境界線が文字Mとのみで構成されるウィンドウSです。あなたの仕事は、文字列を取り、入力が有効なMSウィンドウであれば真理値を出力し、そうでなければ偽値を出力するプログラム(または関数)を書くことです。 仕様書 入力は、改行で区切られた文字列または各行を表す文字列の配列として取得できます。 MSウィンドウの境界線には、M文字とS文字が混在している場合がありますが、内部は常にスペースで構成されます。 末尾の改行があるウィンドウのみを検出するか、末尾の改行がないウィンドウのみを検出するかを選択できますが、両方は検出できません。 テストケース 真実: MMM MMM MMM SMSMS M M S SMSMM S S M SMSMS MMMMMMM M S M M S M MSSSSSM M S M M S M MMMMMMM …

12
素数表
イントロ 私がレクリエーション数学で遊んだのは、数値の素数の除数を視覚的に比較/対比するための除数テーブルの構築です。入力番号のセットは列ラベルとして上部にあり、素数は行ラベルとして左側にあり、マークは2つの行の位置を示します。 たとえば、入力の場合、6, 9, 14, 22次のような表が作成されます。 6 9 14 22 2 * * * 3 * * 7 * 11 * これは、ある6の素因子を持っている2と3、9の素因子を持っている3ように、と。 建設 テーブルは、入力番号がスペースで区切られた昇順の列ラベルを形成するように構築され(事前にソートされていると想定できます)、行を形成する行ごとに1つずつ昇順で素数がリストされますラベル。 数値の長さが異なる場合、すべての列が同じ幅で適切に整列するように、素数の先頭スペースと入力数値が必要になる場合があることに注意してください。 各除数は単一*(または同じ文字がすべての出現に使用される限り、選択した他の適切なASCII文字)で表されます。 複数の除数は無視されます(たとえば、その交差点には3 x 3 = 91つしかありません*)。 *限り、それは(私はすべての私の例を持っている明確なだとして、列の任意の場所に水平に配置することができ*右揃え)。 入力 それぞれの便利な形式の正の整数のリスト>1。 入力が事前にソートされていると想定できます。 入力には一意の値のみが含まれることが保証されています。 出力 結果の素数表のASCIIアート表現。 ルール 文字自体が正しく並んでいる限り、先頭または末尾の改行または空白はすべてオプションです。 列/行の見出しを表形式のデータから分離する分割線を使用する方が短い場合は、それも許可されます。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 可能であれば、オンラインテスト環境へのリンクを含めて、人々がコードを試せるようにしてください! 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。 例 6,9,14,22 6 9 14 …

30
ABCのように簡単
入力 文字のそれぞれの最も1に含まれている文字列A、BとC。それらの順序は任意です。空の文字列は有効な入力です。 注:このチャレンジの以前のバージョンでは、LEJ代わりに文字ABCが使用されていましたが、必要に応じて引き続き使用できます。 出力 文字列A、B、C入力には存在していなかった手紙。それらの順序は任意です。 出力が空の文字列である場合、それが実装にとって意味がある場合、単に出力を与えないことは有効です。(たとえば、実際にprint空の文字列を呼び出す必要はありません。) 例 入力された場合B、出力のいずれかでなければならないCA、またはAC以降AとC入力には存在しません。 入力が空の文字列である場合、入力にはABC3文字が存在しないため、出力は任意の順列である必要があります。 入力がCAB3つの文字すべてが入力に存在するため、入力がその場合、出力は空の文字列になります。 テストケース 入力ケースが非常に少ないため、すべてを列挙できます。 in -> out1 | out2 | out3 | ... ABC -> "" ACB -> "" BCA -> "" BAC -> "" CAB -> "" CBA -> "" AB -> C AC -> B BC -> A BA -> …

11
負のフィボナッチ数
あなたはおそらくフィボナッチ数列を知っています: fibonacci(n)=fibonacci(n-1)+fibonacci(n-2) fibonacci(0)=0 fibonacci(1)=1 あなたの仕事はできる限り簡単です: 与えられた整数N計算fibonacci(n) しかし、ここにひねりがあります: また否定的に N 待つ。何? fibonacci(1)=fibonacci(0)+fibonacci(-1) そう fibonacci(-1)=1 そして fibonacci(-2)=fibonacci(0)-fibonacci(1)=-1 等々... これはコードゴルフなので、バイト単位で最短のプログラムが勝ちます。 機能または完全なプログラムを提出できます Nは[-100,100]です CSVのテストケース: -9;-8;-7;-6;-5;-4;-3;-2;-1;0;1;2;3;4;5;6;7;8 34;-21;13;-8;5;-3;2;-1;1;0;1;1;2;3;5;8;13;21 ヒント: n <0およびn&1 == 0: fibonacci(n)=fibonacci(abs(n))*-1

16
オイラー数を出力する
負でない整数n,n,n ,、nthnthn^{\text{th}} オイラー数(OEIS A122045)を出力します。 奇数インデックスのオイラー数はすべて0.0.0 .偶数インデックスオイラー数は、下記式(で計算することができるi≡−1−−−√i≡−1i \equiv \sqrt{-1}は虚数単位を指します): E2n=i∑k=12n+1∑j=0k(kj)(−1)j(k−2j)2n+12kikk.E2n=i∑k=12n+1∑j=0k(kj)(−1)j(k−2j)2n+12kikk. E_{2n} = i \sum_{k=1}^{2n+1}{ \sum_{j=0}^{k}{ \left(\begin{array}{c}k \\ j \end{array}\right) \frac{{\left(-1\right)}^{j} {\left(k-2j\right)}^{2n+1}}{2^k i^k k} } } \,. ルール nnnは、nthnthn^{\text{th}}オイラー数が言語の表現可能な整数の範囲内での整数になります。 テストケース 0 -> 1 1 -> 0 2 -> -1 3 -> 0 6 -> -61 10 -> -50521 20 -> 370371188237525

14
nのすべての乗算パーティションをリストします
正の数で与えられたN、出力のすべての異なる乗法パーティションN任意の便利なフォーマットです。 nの乗法パーティションは、すべてが1より大きい整数のセットであり、その積はnです。たとえば、20には次の異なる乗法パーティションがあります。 2 * 2 * 5 2 * 10 4 * 5 20 順序は関係ないため2 * 2 * 5、と同じパーティションになり2 * 5 * 2ます。 例: 1 -> {} 2 -> {2} 4 -> {2, 2}, {4} 20 -> {2, 2, 5}, {2, 10}, {4, 5}, {20} 84 -> {2, 2, 3, …

11
シディ多項式係数の絶対和
バックグラウンド 次数nのSidi多項式(または(n + 1)番目の Sidi多項式)は、次のように定義されます。 シディ多項式にはいくつかの興味深い特性がありますが、係数も同様です。後者はOEISシーケンスA075513を形成します。 仕事 非負の整数を与え、ことをフルプログラムまたは機能を記述し、N、プリントまたは戻り度のシディ多項式の係数の絶対和をN、即ち これらの合計は、OEISシーケンスA074932を形成します。 1ベースのインデックス付けを希望する場合は、代わりに正の整数nを取り、n 番目の Sidi多項式の係数の絶対和を計算できます。 これはcode-golfであるため、コードをできるだけ短くする必要があります。すべての標準ルールが適用されます。 テストケース(0ベース) n Σ 0 1 1 3 2 18 3 170 4 2200 5 36232 6 725200 7 17095248 8 463936896 9 14246942336 テストケース(1ベース) n Σ 1 1 2 3 3 18 4 170 5 2200 6 …

18
XOR 2つのモノクロ画像
チャレンジ: 2つの白黒(モノクロ)画像を入力し、最初の画像の各ピクセルと2番目の画像の各ピクセルをxorし、それらを新しい画像に追加して、新しい画像を出力します。 いくつかの説明: 写真のサイズは関係ありません。拡張子/画像形式は関係ありません。拡張機能がデジタル画像の保存に使用されている限り、任意の拡張機能を入力し、任意の拡張機能を出力することができます。また、グラフィックを使用して、たとえば、必要に応じてピクチャボックスに出力を描画することもできます。それ以外の場合は、出力をファイルとして保存します。入力は、画像またはURLへのパスとして取得できます。 ただし、できないことの1つは、I / O配列です。トリプレット(R、G、B)の。 alphaを改ざんしないでください。固定する必要はありません。ピクセルごとに255(最大値)にする必要があります。 各ピクセルのxまたはxとはどういう意味ですか? この方法で行う必要はありませんが、2つのピクセルをxorする1つの方法は、RGB値とxor R1とR2、G1とG2、B1とB2を取得し、その結果を新しい色にすることです。 2色しかないため、明らかに同じ色の場合、結果は(0,0,0)になり、異なる場合(白は255,255,255、黒は0,0,0)になり、結果は次のようになります。 255,255,255になります。 したがって、2つのピクセルが異なる場合、結果は白ピクセルになり、そうでない場合は黒ピクセルになります I / Oの例: 入力1:入力2: 出力: これはコードゴルフなので、最短のコードが優先されます。

2
画像のヒルベルト化
私はヒルベルト曲線が好きです。 この課題のタスクは、画像(すべての辺が2ピクセルの幅である厳密に正方形の画像)を取得し、ジグザグ形式で1行ずつ展開し、擬似ヒルベルト曲線で元に戻すことです。 。 解き明かす 解くには、左上隅のピクセルから始めて、画像の端に到達するまで右に進みます。画像の端に到達したら、次の行に移動し、再び端に到達するまで左に移動し始めます。行を切り替えるたびに行を解き続けて、1つの連続した曲線を取得します。これはヘビのよくプレイされるゲームのように見えるはずです 展開の結果は、すべてのピクセルを1回だけ含むピクセルの順序になります。 レラベリング ピクセルの順序が決まったら、擬似ヒルベルト曲線のパスに従って、新しい同じサイズのキャンバス上でピクセルを再配置します。以下のために2**nサイズの正方形の画像あなたは、擬似ヒルベルト曲線のn番目の反復を使用する必要があります。各ピクセルは、新しいキャンバス上のちょうど1つの場所に配置されます。元々左上のポイント(スネークカーブの開始点)がそのまま残り、右下のポイント(スネークカーブの終了点)が右上に配置されるように、イメージを展開する必要があります。 I / O プログラムまたは関数は、標準的な方法で指定された制約の画像を取り込み、標準的な方法で別の画像を出力する必要があります。 得点 これは、勝ちが最も少ないコードゴルフプログラムです。 例 入力 出力 入力 出力 入力 出力 また、空白の白または単色のイメージでテストして、ピクセルが欠落していないことを確認することをお勧めします。 あなたの答えにあなた自身の結果を含めてください。

20
ペアリング可能な文字列
文字列があるペア可能で、それが連続して2回繰り返した文字列で、それぞれのsubtrings、に分割することができます。たとえば、次のようにaabaaababbbabaペアリング可能です: aaba aaba b b ba ba 空ではないa'sとb' s の文字列を指定すると、ペアリング可能な場合はTruthy値を出力し、ペアリングできない場合はFalsey値を出力します。 ペアリング可能: aa abaaba bbababbb aabaaababbbaba babababa bbbbbbbbbbbb aaababbabbabbbababbaabaabaababaaba aaaabaab ペアリング不可: a ba baab abaabaaba bbbbbbbbbbbbbbb baababbabaaaab aaaaabbaaaaa あなたの言語で既に短い正規表現の回答がある場合でも、正規表現に基づいていないソリューションを考え出すことをお勧めします。「正規表現なし」としてマークできます。正規表現とは、組み込みの文字列パターンマッチングサブシステムを意味します。 リーダーボード: コードスニペットを表示 var QUESTION_ID=98252,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/98252/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o …

19
URLフレンドリーなタイトル
このサイトの人々は、投稿タイトルを飾るのが大好きです... Stewie's sequence: + * - / + * - / ただし、このタイトルをページURLに含める必要がある場合、簡略化されます。 stewies-sequence チャレンジ あなたの仕事は、投稿のタイトルを表す文字列が与えられると、その「URLフレンドリー」変換を出力/返すプログラムまたは関数を作成することです。 アルゴリズムは次のとおりです。 小文字に変換(該当する場合) すべてのスペース()、ピリオド(.)、コンマ(,)またはスラッシュ(/)をダッシュ​​(-)に置き換えます ダッシュ以外の英数字以外の文字を削除します。 隣接するダッシュのグループを縮小し(a---b -> a-b)、先頭または末尾にあるダッシュを削除します。 このアルゴリズムは簡略化であり、サイトの実際の方法と同じ結果を常に生成するとは限らないことに注意してください。 ルール 次の入力を想定できます。 空になりません。 少なくとも1つの英数字が含まれます。 ASCII範囲32〜126の文字のみが含まれます(印刷可能) 完全なプログラムまたは機能が許可されています。 正確なタスク指定を行うビルトインは許可されていません。 これはcode-golfなので、最短の解決策(バイト単位)が勝ちです! テストケース このサイトのほとんどの投稿はテストとして機能しますが、便利なリストを次に示します。 Loading... Forever -> loading-forever N(e(s(t))) a string -> nest-a-string "Hello, World!" -> hello-world URL-Friendly titles -> url-friendly-titles …

20
与えられた長さの直鎖アルキネの数
直鎖alk * neは、単結合(アルカン)、二重結合(アルケン)、三重結合(アルキン)で接続された一連の炭素原子として定義されます(暗黙の水素が使用されます)。炭素原子は4つの結合しか形成できません。炭素原子に4つを超える結合を強制することはできません。直鎖alk * neは、その炭素-炭素結合のリストとして表すことができます。 これらは、有効な直鎖アルケンのいくつかの例です: [] CH4 Methane [1] CH3-CH3 Ethane [2] CH2=CH2 Ethene [3] CH≡CH Ethyne [1,1] CH3-CH2-CH3 Propane [1,2] CH3-CH=CH2 Propene [1,3] CH3-C≡CH Propyne [2,1] CH2=CH-CH3 Propene [2,2] CH2=C=CH2 Allene (Propadiene) [3,1] CH≡C-CH3 Propyne [1,1,1] CH3-CH2-CH2-CH3 Butane ... これらはそうではありませんが、少なくとも1つの炭素原子には4つ以上の結合があるためです。 [2,3] [3,2] [3,3] ... あなたの仕事は、正の整数が与えられると、正確に炭素原子の長さの有効な直鎖アルケンの数をn出力/返すプログラム/関数を作成することです。これはOEIS A077998です。n 仕様/明確化 を1返すことで正しく処理する必要があり1ます。 …

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