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

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

8
完全な正方形を構成するシーケンスからのコレクション
無限のシーケンスであるOEIS A033581のシーケンスが与えられた場合、n番目の項(0インデックス)は、閉形式の式6×n 2で与えられます。 あなたの仕事は、サブセットの合計が完全な正方形になるように、シーケンスの最初のN個の数値のセットのすべてのサブセットを出力するコードを記述することです。 ルール 整数Nは入力として与えられます。 合計ですでに使用されている数を再利用することはできません。(つまり、各番号は各サブセットに最大1回出現できます) 使用される数値は、連続していない場合があります。 最小のサイズのコードが優先されます。 例 指定されたシーケンスは{0,6,24,54,96、...、15000}です 必要なサブセットの1つは{6,24,294}です。 6+24+294 = 324 = 18^2 あなたは与えられた範囲内のすべての可能な長さのそのようなすべてのセットを見つける必要があります。

30
アルファベットポジションファインダー
Codewars Kataに触発されました。 あなたの目標は次のような入力文字列を取ることです: "'Twas a dark and stormy night..." 次のように、スペースで区切られ、アルファベット以外の文字を無視して、アルファベットの各文字の位置を含む文字列を返します。 "20 23 1 19 1 4 1 18 11 1 14 4 19 20 15 18 13 25 14 9 7 8 20" 追加の課題として、元の文字列の数字を自分自身+ 27に置き換えることができます。たとえば、"25"になり"29, 32"ます。これは完全にオプションです。 あなたは1-インデックスを使用する必要があります('a'==1、'b'==2、など) 追加のルール: 配列ではなく文字列を返す必要があります。 末尾の空白は問題ありません。 勝者はバイト数が最も少ないです。 幸運を!

8
BIU番号(または合計数)
それらを見つける方法 正の整数kを取ります。その除数を見つけます。各除数の明確な素因数を見つけます。これらすべての要素を合計します。この数(合計)がkの約数である場合(合計がkを除算する場合)、この数kはBIU数です。 例 数54 を取ってみましょうすべての除数 [1, 2, 3, 6, 9, 18, 27, 54] を検索:各除数の個別の素因数を検索 注:1個別の素因数として取得する場合1 1 -> 1 2 -> 2 3 -> 3 6 -> 2,3 9 -> 3 18 -> 2,3 27 -> 3 54 -> 2,3 今、私たちは和取るすべてのこれらの素因数 1+2+3+2+3+3+2+3+3+2+3=27 27除算54(葉なし余り) だから、54 あるBIU番号を。 以下のためのもう一つの(速い)例k=55 :除数 [1,5,11,55] の異なる素因数の合計は: 1+5+11+5+11=33 33ではありませんなぜだ55の除数、55あるNOT …

2
Cubically Cubeを実装する
Cubicallyは、問題の非常に特定のサブセットに対してゴルフのような短い答えを作成できる、かなり新しい難解な言語です。3x3ルービックキューブの形でメモリを格納するという点で独特であり、計算はほとんどの言語よりもはるかに簡単です。Cubicallyでは、プログラマーは面に格納された値を操作するために内部の立方体を回転させ、それらの値を計算に使用する必要があります。計算は、「ノートパッド」と呼ばれる架空の面に保存されている単一の32ビット整数で実行されます。さらに、Cubicallyはユーザー入力を要求し、それを単一の整数値のみで構成される入力バッファーに格納できます。 キューブ 立方体の面は、U p、D own、L eft、R ight、F ront、およびB ackです。 UUU UUU UUU LLLFFFRRRBBB LLLFFFRRRBBB LLLFFFRRRBBB DDD DDD DDD プログラムが開始すると、その面の各正方形がその面の0ベースのインデックスと等しくなるようにキューブが初期化されます。 000 000 000 111222333444 111222333444 111222333444 555 555 555 面が回転するときは常に、常に時計回りに回転します。 Cubically> F1 000 000 111 115222033444 115222033444 115222033444 333 555 555 面の値は、その面のすべての正方形の合計として定義されます。たとえば、上のキューブでは、faceの値0は3です。 構文 コマンドを実行するには、まずコマンドをメモリにロードし、次に引数をコマンドに渡してコマンドを実行します。たとえば、コマンドF1はコマンドFをメモリにロードし、引数を指定して呼び出します1。さらに、F13コマンドFをメモリにロード1してから、引数を指定して呼び出し、次に引数を指定して呼び出します3。数字以外の文字はコマンドとして扱われ、数字は引数として扱われます。 あなたのタスク あなたの仕事は、選択した言語でCubicallyの内部メモリキューブを実装することです。コードは、言語の非常に小さなサブセットを実行できる必要があります。 コマンド R -立方体の右側面を指定された回数時計回りに回転させます。 L -立方体の左面を指定された回数時計回りに回転させます。 …

17
おおよそのマイスクエア
tecmathによるこのビデオに触発されました。 任意の数の平方根の概算は、x整数の平方根s(つまり、であるような最大の整数s * s ≤ x)を取得して計算することで見つけることができますs + (x - s^2) / (2 * s)。これを近似と呼びましょうS(x)。(注:これは、ニュートンラフソン法の1つのステップを適用することと同じです)。 これには奇妙な点がありますが、S(n ^ 2-1)は常に√(n ^ 2)になりますが、一般的には非常に正確です。一部の大きなケースでは、これは> 99.99%の精度を持つことがあります。 入出力 任意の形式で1つの番号を取得します。 例 フォーマット:入力->出力 2 -> 1.50 5 -> 2.25 15 -> 4.00 19 -> 4.37 // actually 4.37 + 1/200 27 -> 5.20 39 -> 6.25 47 -> 6.91 …

7
自由形式の日付を読む
以下の形式のいずれか(すべて同じプログラムで処理する必要がある)で記述された日付を指定して、有効なに解析しますyyyy/mm/dd date。 17th May 2012 March 14th, 2016 20 February 2014 September 14, 2017 Sunday, June 8, 2015 ルール 日付が無効になる場合があります。月または年の月数が正しくない場合は、両方のケースを処理する必要があります。エラーになるか、一貫した偽の値を返すかのどちらかを選択します。(ただし、上記のテンプレート形式を使用します) 2桁の出力を作成するには、10未満の日と月のパディングを使用する必要があります。 月の名前は常にフルネームであり、3文字の短縮形に短縮されません。 年は常に0000〜9999の範囲内であると想定できます。 負の数は処理する必要はありません。 完全なプログラムまたは関数を作成して、出力を任意の形式にして、コンソールに出力したり、関数から返すことができます。 入力が常に文字列であり、出力が常に文字列である必要がある場合は、配列内の単一の引数として受け取ると短くなります。["17th May 2012"]あなたはそうすることができ、出力は同じになる可能性があります["2012/05/17"] 入力のスペルが正しいと想定できます。 ボーナス:ここでチャレンジが嫌いなcos;) あなたはまたの入力フォーマットを許可するように管理することができた場合The Fourteenth of March, 2016、またはMarch the Fourteenth, 2016あなたが余分かかる場合があります20バイトの少ない1その結果1よりも最終的なバイト数でコードオフ。 スペルの混乱を避けるために、各曜日の完全な筆記番号を以下に示します。 First, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Nineth, Tenth, Eleventh, …
10 code-golf  string  date 

10
フェルマー素数の生成
数値nを指定して、n番目の素数フェルマー数を出力します。フェルマー数は2 2 k +1の形式です。このコードは、理論的にはどのnでも機能します(つまり、ハードコードしないでください)。ただし、n> 4で終了することは想定されていません(4294967297は素数ではないため、n = 5の場合は4294967297を返しません。) すべてのフェルマー素数は2 2 n +1の形式ですが、2 2 n +1 形式のすべての数が素数ではないことに注意してください。このチャレンジの目標は、n番目の素数を返すことです。 テストケース 0 -> 3 1 -> 5 2 -> 17 3 -> 257 4 -> 65537 ルール 標準の抜け穴は許可されていません。 0インデックスと1インデックスはどちらも使用できます。 これはcode-golfで、バイト数が最も少ない勝利です。 関連:構築可能なnゴン
10 code-golf  primes 

13
クラークの三角形
わかりました。最近トライアングルキックに少し触れたので、こちらをもう1つ紹介します。 クラークの三角形は、各行の左端のエントリが1で、右端のエントリが6の倍数で構成される三角形で、行番号が増えるにつれて増加します。ここに視覚化があります 1 6 1 . 12 1 . . 18 1 . . . 24 1 . . . . 30 1 . . . . . 36 PascalのTriangleと同様に、他のすべてのエントリは、右上と左上の数値の合計です。 以下が最初の数行です 1 6 1 7 12 1 8 19 18 1 9 27 37 24 1 10 36 64 61 …
10 code-golf  math  number 

6
Googleリンクの短縮を解除する
チャレンジ 有効なgoo.gl短縮リンクを指定して、元のURLを出力します。 例 goo.gl/qIwi3Nのようなものを与えるでしょうhttps://codegolf.stackexchange.com/。入力の場合https?://、最初にを置くか、のwww.前に置くかをgoo.gl選択できgoo.glます。また、URLの最後だけが必要な場合は、を取り除くように選択することもできます。末尾のスラッシュは、入力と出力のオプションです。したがって、入力は最終的に正規表現に一致し(https?://)?(www\.)?(goo\.gl/)?[A-Za-z0-9]+/?ます。出力のために、あなたが出力するか否かを選択することができhttps?://、出力するか否かwww.、および出力するか否か末尾にスラッシュ。ただし、I / Oフォーマットと一貫している必要があります。 部分全体を含めるかどうかに一貫性がある限り、出力とhttps比較httpして一貫性を保つ必要はありません(ただし、入力について一貫性を保つ必要があります)https?://。 テストケース これらは、入力にno https://、no www.、末尾のスラッシュを付けずに記述されます。出力のyes https://、no www.、およびyes末尾のスラッシュ。 input -> output goo.gl/HaE8Au -> https://codegolf.stackexchange.com/ goo.gl/IfZMwe -> https://stackoverflow.com/ goo.gl/JUdmxL -> https://chat.stackexchange.com/rooms/240/the-nineteenth-byte 仮定 短縮リンクが別の短縮リンクを指さず、宛先サイトがステータスコード2xxorまたは4xx(リダイレクトなし)を返すと想定する場合があります。 ここにアクセスしてURLを入力すると、この逆の操作を適用できます:https : //goo.gl/

5
3Dでガウス分布をプロットする
確率論では、正規(またはガウス)分布は非常に一般的な連続確率分布です。正規分布は統計上重要であり、自然科学および社会科学では、分布が不明な実数値の確率変数を表すためによく使用されます。 チャレンジ あなたの課題は、3次元平面上にガウス分布の確率密度をプロットすることです。この関数は次のように定義されます。 どこ: A = 1、σ X = σ Y = σ ルール プログラムは、標準偏差である1つの入力σを取る必要があります。 プログラムは、ガウス分布の3Dプロットを、言語/システムで可能な限り最高の品質で印刷する必要があります。 プログラムは、組み込みの直接ガウス分布または確率密度を使用しない場合があります。 プログラムを終了する必要はありません。 プロットは白黒またはカラーの場合があります。 プロットの下部にグリッド線が必要です。(例に示すように)側面のグリッド線は不要です。 プロットでは、グリッドラインの横にライン番号を付ける必要はありません。 得点 code-golfの通常のように、バイト数が最も少ない送信が優先されます!信じられないほど小さくて直感的でない限り、ボタンを使って答えを「受け入れる」ことは決してできません。 出力例 出力は次のようになります。 または、次のようになります。 より 有効な 出力。無効な 出力。

3
バイナリパズルソルバー
前書き パズルのルール: パズル(としても知られているバイナリTakuzuまたはSubikuは)理解することは非常に簡単で、かつ唯一のいくつかのルールがあります。 ゲームの名前はバイナリであるので、それはかなり明白だが、あなただけの0と1を記入することができます。 同じ数字を2つだけ縦または横に互いに隣接させることができます 各行と各列には、等しい量のゼロと1が含まれている必要があります(これは暗黙的に、すべてのバイナリゲームが常に偶数次元を持つことを意味します)。 行と列が重複していない場合があります(ゼロと1の順序がまったく同じ)。 必要に応じて、www.binarypuzzle.comでゲームをプレイできます。 戦術: ルール1により、次の場合は常に数字を入力できます。- 同じ数字が2つ縦または横にすでに隣接している場合、両側で反対の数字を入力できます。すなわち.11...→ 0110..。 -縦または横に同じ数字が2つあり、その間に1つのギャップしかない。すなわち.1.1..→.101.. ルール1により、3つのギャップが残っており、同じ数字を3つ隣接させることができない場合、ギャップの1つを埋めることができます。すなわち.0.1.0→ 10.1.0(まだ2つ入力する必要があり、3つの隣接するものを中央に配置することはできないため、最初のギャップはでなければなりません1。) ルール2により、行または列の残りのギャップの半分がすでに反対の桁で埋められている場合は、常に残りのギャップを埋めることができます。すなわち.1.011→010011 規則3により、同じ順序の行を解くために2つだけ残っている場合は、常に反対の数字を埋めることができます。すなわち101100 & 1..100→101100 & 110100 ルール3により、3つのギャップが同じ順序の線上に残っている場合、ギャップを埋めることができます。すなわち010011 & .1.01.→ 010011 & .1.010(1最後にaを入力することはできません。これは、他の2つのギャップにゼロを入力し、両方の行を順番に等しくする必要があるためです。) 例: いくつかの1と0が埋められた次の6x6グリッドから始めます(ドットはまだ埋めていないギャップです): .1.... .10.0. 1.11.. .1.... ...1.0 ...... ルール1および2により、次の数字を入力できます。 .1.01. .1010. 101100 010011 .0.1.0 .010.. ルール1により、行5、列1に1を入力できます。 .1.01. .1010. 101100 010011 10.1.0 .010.. ルール3により、行1、列6に0を入力できます(行4を見た場合): …

5
Modular SNUSPで数値の最も短い表現を見つける
バックグラウンド 多くの難解なプログラミング言語にはリテラルに数値が組み込まれていないため、実行時に計算する必要があります。これらの多くの場合、数値表現は非常に興味深いものになります。Underloadの数値の表現については、すでに課題がありました。この課題は、モジュラーSNUSPで数値を表現することです。(この課題を完了するためにSNUSPを学ぶ必要はないことに注意してください。必要な情報はすべて仕様に含まれていますが、背景が興味深いかもしれません。) タスク この課題の目的のために、モジュラーSNUSP数は、文字のうちに形成された文字列である@、+と=最後の文字があることを除いて、#最後から二番目の文字がでなければならず、ということ+か=(それがすることはできません@)。例えば、有効な数字が含まれ@+#、==#と@@+@=#。無効な数字の例としては+=、@@#、と+?+#。 Modular SNUSP番号の値は、次のように再帰的に計算されます。 # 値は0です(これが基本ケースです)。 数値の形式=xが任意の文字列xである場合、その値はの値と同じですx。 数値の形式がの場合、+x任意の文字列についてx、その値はの値にx1を加えたものに等しくなります。 数値の形式が@cx1つの文字cと文字列のx場合、その値はの値にの値をx足したものに等しくなりますcx。 この課題では、非負の整数を入力として受け取り、入力と等しい値を持つ最短のModular SNUSP番号である文字列を出力するプログラムを作成する必要があります。 明確化 同じ値を持つ複数の文字列が存在することは完全に可能です。特に、一部の整数については、その値を持つ最短のModular SNUSP番号が同点になります。そのような場合、同点で関係する数値を出力できます。 数を見つけるために使用するアルゴリズムに制限はありません。たとえば、文字列を総当たりで評価することは合法的な戦術ですが、検索スペースを減らすために賢いことをしています。 PPCGでの通常のように、提出物は完全なプログラムまたは関数のいずれかです(言語でより簡潔な方を選択します)。 これは入力形式と出力形式の処理に関する問題ではないので、非負の整数を入力して文字列を出力するための適切な手段を使用できます。metaに関する完全なガイドがありますが、最も一般的に使用される有効なメソッドには、関数の引数/戻り値、コマンドライン引数、および標準入力/標準出力が含まれます。 テストケース 以下は、最初の数の最も短い表現です。 0:# 1:+# 2:++# 3:+++#または@++# 4:++++#または+@++#または@=++# 5:@+++#または@@++# 6:+@+++#または+@@++#または@=+++#または@=@++#または@@=++# 7:@++++#または@+@++# 8:@@+++#または@@@++# 9:+@@+++#または+@@@++#または@+++++#または@++@++#または@+@=++#または@@=+++#または@@=@++# 10:@=@+++#または@=@@++#または@@@=++#(考えられるすべての回答に含まれるため、これは確認するのにかなり重要なテストケースです=) 11:@+@+++#または@+@@++#または@@++++#または@@+@++# 12:+@+@+++#or +@+@@++#または+@@++++#or +@@+@++#または@=+@+++#or @=+@@++#または@=@=+++#or @=@=@++#または@=@@=++#or @@=++++#または@@=+@++#orまたは@@=@=++# 13:@@@+++#または@@@@++# 14:+@@@+++#または+@@@@++#または@=@++++#または@=@+@++#または@@+++++#または@@++@++#または@@+@=++# 15:@+@++++#または@+@+@++#または@@=@+++#または@@=@@++#または@@@=+++#または@@@=@++# 大きなテストケースとして、入力から出力40があるべきである@@@=@@+++#、@@@=@@@++#、@@@@=@+++#、または@@@@=@@++#。 勝利条件 コードゴルフの挑戦、勝者はバイト単位で測定、最短のエントリです。
10 code-golf  number 

16
ちょっと待って…また何を言うつもりだったの?
先生が私に話すように言ったとき、私が言いたかったことをしばしば忘れます。これを解決するためのツールを作ってくれませんか? 要件: プログラムは次のようにループする必要があります。 まず、入力を取ります 入力が空の場合、最後に保存された質問を出力します。 それ以外の場合は、入力を質問として保存します。 ノート: 質問が保存されていない場合、入力が空になることはありません。 明確化:プログラムは複数の質問を保存する必要はありません。 もともとは複数保存したかったのですが、多くの人に誤解されて変更しました。 これはcode-golfなので、バイト数が最も少ないコードが優先されます。
10 code-golf  string 

5
順列のステップ
整数のセットを取り、セットのすべての順列を出力する関数を記述し、各ステップ間でスワップを実行します 入力 整数のセット、たとえば(0、1、2) 出力 (set)(swap)(set)という形式の順列とスワップのリスト... テストケース Input: (3, 1, 5) Output: (3, 1, 5) (3, 1) (1, 3, 5) (3, 5) (1, 5, 3) (1, 3) (3, 5, 1) (3, 5) (5, 3, 1) (3, 1) (5, 1, 3) ルール 必要に応じて、数値セットをフォーマットできます。 スワップは任意の順序で行うことができます 新しいものを得るために順列と交換を繰り返すことができます コードは実際にスワップを実行する必要はありません。出力は、最後の出力と現在の出力の間で行われたスワップを示す必要があります。 コードは、2つ以上の要素を持つセットに対してのみ機能する必要があります 指定されたセットには繰り返し要素がありません(例(0、1、1、2)は無効です) これはコードゴルフなので、最短のコードが勝ちます!

8
最後の2つの先行モデルと互いに素であり、まだ出現していない最小の正の整数。a(1)= 1、a(2)= 2
定義 2つの整数は、以外の正の公約数を共有しない場合、互いに素です1。 a(1) = 1 a(2) = 2 a(n)integerに対して、a(n-1)と互いに素であり、a(n-2)まだ出現していない最小の正の整数n >= 3です。 仕事 正の整数を指定するとn、出力/印刷されますa(n)。 例 a(11) = 6これ6は、最後の2つの先行(つまり、11および13)と互いに素であり、6以前に出現したことがないためです。 ノート シーケンスは昇順ではないことに注意してください。つまり、要素は前のものよりも小さくなる場合があります。 スペック 1インデックスを使用する必要があります。 テストケース n a(n) 1 1 2 2 3 3 4 5 5 4 6 7 7 9 8 8 9 11 10 13 11 6 12 17 13 19 …

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