プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

23
2つの整数の平均を合計します
数学には、算術平均、幾何平均など、多くの平均があります... 定義とタスク これらは2つの正の整数の定義であることに注意してください*: 根平均二乗は半分自分の二乗和(の平方根です)。 算術平均は(半分、それらの和です)。 幾何平均は(彼らの積の平方根です)。 調和平均は、ある2それらの逆(の合計で割っ= )。 二つの整数所与及びbは 、その結果、B∈[1、+∞) 、手段の上記合計とB。回答は少なくとも小数点以下3桁まで正確である必要がありますが、丸めや浮動小数点の精度エラーを心配する必要はありません。 テストケース a、b->出力 7、6-> 25.961481565148972 10、10-> 40 23、1-> 34.99131878607909 2、4-> 11.657371451581236 345、192-> 1051.7606599443843 このプログラムを使用して、より多くのテストケースの正しい結果を確認できます。これはcode-golfであるため、標準ルールに準拠した最短の有効な提出が優先されます。 *他にも多くの手段がありますが、この課題の目的のために、「定義」セクションで言及したものを使用します。

11
自己合計数
数字を数字の合計に変換する ない任意の合計:私たちが必要とする最短の和を 任意の数字ではない:あなただけ使用することができます番号の桁数を 例入力として整数 が与えられますn>0 言ってみようn=27。可能な限り短い方法で、数字のみを使用27してsumとして表現する必要があります。指定された番号のすべての数字を使用する必要はありません! [2,7] だから27=2+2+2+7+7+7。それからそれらの数字を数えて数えます:[2,2,2,7,7,7]。 の最終回答n=27は6 以下のためのもう一つの例n=195得るために最短合計私たちは、次の数字を使用する必要があります [5,5,5,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9]と答えがあります23 チャレンジ 整数与えられn>0、出力の最小桁数(番号に含まれる)は、この数まで和 テストケース Input->Output 1->1 2->1 10->10 58->8 874->110 1259->142 12347->1765 123456->20576 3456789->384088 これはcode-golfです。バイト単位の最短回答が勝ちです!

15
ポインターシーケンスを作成する
ような任意の配列であることがポインタ配列を定義することができ(n)は=((N-1) - ((N-1))) FORALL Nいくつかの有限数よりも大きいです。たとえば、シーケンスが 3 2 1 次の項は2、a(n-1)= 1、(n-1)-1 = 1、a(1)= 2であるためです(この例はゼロインデックスですが、計算に使用するインデックスは関係ありません常に同じです。)。プロセスを繰り返すと、無限のシーケンスが得られます 3 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 …

13
カエルのようにスキップ!
以下に説明するように、負でない整数の配列が与えられた場合、タスクはその特定の要素のみを保持することです。 配列がであるとしましょう[1, 3, 2, 4, 11, 5, 2, 0, 13, 10, 1]。 まず、配列の最初の要素を取得しnます。最初のn要素を保持し、次の要素を破棄します(n+1thは破棄します)。新しい配列は[1, 2, 4, 11, 5, 2, 0, 13, 10, 1]です。 次に、削除した要素の次の要素を取得し、まったく同じことを行います。プロセスを再適用すると、[1, 2, 11, 5, 2, 0, 13, 10, 1] 配列の境界の外側に到達するまで、または配列に要素がなくなるまで、このプロセスを繰り返します。11配列の長さよりも大きいため停止します。 次に、結果を出力する必要があります。 入力/出力は、任意の標準形式で取得/提供できます。配列は決して空ではなく、負でない整数のみを含みます。すべての標準的な抜け穴は禁止されています。 これはコードゴルフなので、バイト単位の最短コードが勝ちです! テストケース 入力->出力 [1、2、3、4、5]-> [1、3、4] [6、1、0、5、6]-> [6、1、0、5、6] [1、3、2、4、11、5、2、0、13、10、1]-> [1、2、11、5、2、0、13、10、1] [2、2、2、2、2、2]-> [2、2] [1、2、3、1、2、3、1、2、3]-> [1、2] [3、1、2、4、0]-> [] * …

7
因子の合計数
正の整数n> 1が与えられた場合、積がnである 1より大きい整数を追加することにより、いくつの数値を作成できるかを決定します。たとえば、n = 24の場合、次の方法でnを製品として表現できます。 24 = 24 -> 24 = 24 24 = 12 * 2 -> 12 + 2 = 14 24 = 6 * 2 * 2 -> 6 + 2 + 2 = 10 24 = 6 * 4 -> 6 + 4 = 10 24 …

1
優れた複合数
優れた高度に合成された数は、除数の数と数の累乗の比が可能な限り高い整数です。これを式として表現する: d(n)をnの約数(数自体を含む)とします。特定の整数nについて、整数kごとにd(n)/ n ^ eがd(k)/ k ^ e以上の数eが存在する場合、nは高度に合成された数です。 詳細については、ウィキペディアの「優れた複合番号」またはA002201を参照してください OEISのを。 初期値は次のとおりです。 2, 6, 12, 60, 120, 360, 2520, 5040, 55440, 720720, 1441440, 4324320, 21621600, 367567200, 6983776800, 13967553600, 321253732800, 2248776129600, 65214507758400, 195643523275200, 6064949221531200 課題は、インデックスnを取得し、このシーケンスのn番目の数値を出力することです。 0または1のインデックスを使用できます。また、少なくとも最初の10個の値を処理できる限り、言語のデータ型の制限までのみ正しいプログラムを作成できます。 これはコードゴルフです。標準の抜け穴が適用されます。

5
Mozilla / 1.0 Mozilla / 2.0 Mozilla / 3.0 Mozilla / 4.0 Mozilla / 5.0
最初はNCSA Mosaicがあり、Mosaicは自分自身を呼び出しNCSA_Mosaic/2.0 (Windows 3.1)、Mosaicはテキストとともに写真を表示し、多くの喜びがありました。 15年後... そして、GoogleがChromeを構築し、ChromeはWebkitを使用しました。Safariのようなもので、Safari用に構築されたページを望んでいたため、Safariのふりをしました。したがって、ChromeはWebKitを使用し、Safariのふりをし、WebKitはKHTMLのふりをし、KHTMLはGeckoのふりをし、すべてのブラウザーはMozillaのふりをし、Chromeはそれ自体を呼び出しMozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13、ユーザーエージェント文字列は完全な混乱でした。ほとんど役に立たず、誰もが他の人のふりをして、混乱がたくさんありました。 ここで全文を読む... ユーザーエージェント文字列を指定すると、対応するブラウザーを返します。 以下をサポートする必要があります: クロム/クロム* オペラ Firefox IE 縁 サファリ コードは、これらのテストケースすべてを満たす必要があります。 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36 Chrome Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, …

30
デバイスが誤動作しています...未定義の文字列動作を悪用します!
助けて!デバイスが誤動作し、文字列を繰り返してみると、厄介な結果になります。同じ文字列をN回繰り返す代わりに、NxNの正方形に各文字を塗りつぶし、正方形を積み重ねます。 たとえば、String ではなくString "Test"を指定すると、次の2よう"TestTest"になります。 TT TT ee ee ss ss tt tt しばらくこれを見た後、私はそれを好きになり始めました。今日のあなたの仕事は、この奇妙な振る舞いを再現することです。与えられた非空でのみ印刷可能なASCII文字から成る文字列、および正の整数、出力文字列の私の誤動作デバイス戻ります。 すべての標準ルールが適用されます。 入力と出力は、合理的な手段で処理できます。 これはcode-golfであるため、各言語のバイト単位の最短コードが優先されます。 テストケース 入力 出力 ---------- 「テスト」、2 TT TT ええ ええ ss ss tt tt ---------- 「UuU」、3 ううう ううう ううう うう うう うう ううう ううう ううう ---------- 「A」、5 AAAAA AAAAA AAAAA AAAAA AAAAA ---------- より大きなテストケースはこちらで見つけることができます。がんばって、ゴルフを楽しんでください!
12 code-golf  string 

13
シークレットスワッピングシーケンスの解決
これは警官と強盗の挑戦です。警官のスレッドはこちらにあります。 これは強盗スレッドです。ここでの仕事は、警官スレッドで提出物を受け取り、隠されたシーケンスを見つけようとすることです。有効なクラックであるそのシーケンスを計算するために元のコードに置き換えることができるシーケンスを見つけた場合。クラックが発生したときに警官に通知して、回答を更新できるようにしてください。 得点 スコアは、成功したクラックの数であり、より多くのクラックが改善されます。

3
誕生日おめでとう、ケーキを食べよう!
それはすぐに私の友人の誕生日であり、彼はプログラマーでありASCIIアートの愛好家なので、私は彼にASCIIケーキを作ろうと思いました! 悲しいことに、私は彼の現在の年齢を忘れないので、指定した数のキャンドルでケーキを焼くアスキーオーブン用のプログラムが欲しいので、彼と間違っていたらもう一度自分でやる必要はありません年齢。 ASCIIオーブンのメモリとストレージ容量は限られているため、できるだけ少ないバイトを使用する必要があります。 あなたのタスク: 誕生日ケーキをコンソールに出力するプログラムを作成します。入力で指定した数のキャンドルを使用します。 ケーキの要件は次のとおりです。 水平線-と垂直|線、および頂点で構成される境界線が必要+です。 少なくとも5文字の幅(ケーキの境界線を含む|) 少なくとも5文字の高さ(ケーキの境界線を含む-) そのスペースに炎がある場合を除いて、ケーキの境界と最初のキャンドルベース(炎ではなく)の間に、両側に空白文字がなければなりません。炎またはろうそくベースは、ケーキの境界線と重ならないようにする必要があります。 ケーキの最大幅は9文字なので、行ごとに最大5つのキャンドルがあります。 ケーキを2次元にしたくないので、ある程度のボリュームを持たせるには、2行余分に高くする必要があります。下部に別の境界線を追加し、頂点を上部の頂点に接続します。ここでも、上からのASCII文字(-、|および+)を使用します。 キャンドルの要件は次のとおりです。 ベース|と炎*で構成され、ベースの上に炎が積み重ねられています。 キャンドルは、対角線を除き、互いに直接隣接していない場合があります。 ろうそくは、左から右へ、次に上から下へ、最大5行で配置されます。 (注:前の行に5本のろうそくがあった場合、次の行にも5本のろうそくを置くことはできません。それは、それらが隣接するからです。) その他の注意事項: ケーキの幅は、最初の行のろうそくの数に依存しますが、最小5文字、最大9文字の幅にする必要があります。 ろうそくは、一番上の行から左から右に向かっていっぱいになります。1つの行が一杯になると、次の行は最初の行の下の行から始まります。 入力: 好きな(合理的な)形式の番号を受け入れることができます。 この挑戦のために、あなたはこの数字が0から2 31(0を含まない)の間であると仮定するかもしれません。 出力: 文字列を返すか、結果のケーキを出力コンソールに直接書き込むことができます。 ルール: 標準的な抜け穴は禁止されています。 これはcode-golfであるため、どの言語でもバイト単位の最短コードが優先されます。 例: 入力: 8 +-----------+ | * * * * * | | |*|*|*| | | | | | | | | …

11
歴史宿題ヘルパー
歴史を読んだりメモをとったりするので、これらの長い日付をすべて書くことにうんざりするしかありません。うん! ご覧のとおり、私は–このサイトのほとんどのチャレンジポスターと同じように–ものを書くことに関しては怠け者です。したがって、いくつかの日付を短くしてください。私の手はすでに疲れているのでもちろん、あなたのソリューションは、できるだけ短くしなければなりません書き込みテストケース外にタイピングを。 日付を短くするにはどうすればよいですか? おもしろいですね とても簡単です: 任意の順序((smallest, biggest)または(biggest, smallest))で入力として2つの整数を受け取ります。 2つの数値のうち大きい方を使用し、小さい方ではない部分のみを使用します。 たとえば、が与えられた場合、両方が同じ桁位置にあるため2010, 2017、に短縮さ2017れます。-7201_ 小さい数字を印刷するか返すか、ダッシュを押してから短い数字を短くしてください。 例えば: Bonus brownies for you if you figure out these dates' significance :) 1505, 1516 -> 1505-16 1989, 1991 -> 1989-91 1914, 1918 -> 1914-8 1833, 1871 -> 1833-71 1000, 2000 -> 1000-2000 1776, 2017 -> 1776-2017 2016, …
12 code-golf  number 

12
クインに戻る
ここでの課題は単純であり、バイトカウントに関するものではありません。あなたの仕事は、前のクインのソースコードの最初の50文字を、私が下に置いた50文字で始まるあなたの最初の50文字と連結して出力​​することです。 abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXY したがって、ここで例を見てみましょう。05AB1Eで回答する場合、最初の50バイトを単純に出力するソリューションは次のようになります。 ži50£ これは、出力する必要があることを意味します: abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXYži50£ プログラムが短い場合は、最初のx < 50文字を使用してください。プログラムが長い場合、最初の50文字のみを連結し、50番目の文字で終了します。次に、次の人は、自分のコードと連結されたクインの最初の50文字を出力する必要があります。 コードのサイズは任意ですが、前の回答のコードの最初の50バイトの最後に連結されたコードの最初の50文字のみを出力する必要があります。 制限事項: これは、適切なquineの定義を使用し、これに加えて、次のものを使用します。 コメントは完全に禁止されています。 このセクションに注意を払い、不正なループホールが発生した場合は進化する可能性があります 連鎖応答の投稿方法: プレースホルダーを投稿する: 回答番号と使用する言語に言及してください。 日付で並べ替え、他の誰かが1ミリ秒前にプレースホルダーを投稿したことに気付いた場合: 削除して、次の機会を待ってください、ごめんなさい。 次のスポットを確保したら、6時間以内に回答してください: 答えられない場合は、予約スペースを削除してください。 スペースが6時間以上占有されている場合。 予約済みスペースの削除に投票し、私が処理します。 投稿フォーマット: #[Answer #]:[Character Count] Characters, [Language Used] {TIO MARKDOWN} {LINE_SEPARATOR="---"} {ADDITIONAL EXPLANATION OR INFORMATION} いくつかの具体的な注意事項(競争のしやすさにとって重要): あなたの前の人がソースに改行または非ASCII文字を含めている場合、それらを削除することができます。これは手段x="a\nb"になりab、x[0]=a;x[1]=b;。 前のソースに適用した突然変異を述べる必要があります。 コードページまたは言語エンコードにもかかわらず、すべての文字は単一の文字としてカウントされます。バイトカウントを使用せず、文字カウントを使用してください。 50th理由は、受け入れられた答えが答えになります。つまり、結局SEです。

6
有理生成関数の係数を見つける
数値のシーケンスをべき級数の係数として記述する場合、そのべき級数はそのシーケンスの(通常の)生成関数(またはGf)と呼ばれます。つまり、ある関数F(x)と一連の整数a(n)について次のようになっている場合: a(0) + a(1)x + a(2)x^2 + a(3)x^3 + a(4)x^4 + ... = F(x) 次にF(x)はの生成関数ですa。たとえば、幾何級数は次のことを示しています。 1 + x + x^2 + x^3 + x^4 + ... = 1/(1-x) したがって、の生成関数は1, 1, 1, ...です1/(1-x)。上記の式の両側を微分して乗算するxと、次の等式が得られます。 x + 2x^2 + 3x^3 + 4x^4 + ... = x/(1-x)^2 したがって、の生成関数は1, 2, 3, ...ですx/(1-x)^2。関数の生成は非常に強力なツールであり、それらを使用して多くの便利なことができます。簡単な紹介はここにありますが、本当に徹底的な説明のために、素晴らしい本生成機能があります。 この課題では、入力として有理関数(整数係数を持つ2つの多項式の商)を、最初に分子、次に分母の2つの整数係数の配列として受け取ります。たとえば、関数f(x) = x …
12 code-golf  math  integer  polynomials  code-golf  math  abstract-algebra  restricted-time  code-golf  math  primes  code-golf  math  number  arithmetic  code-golf  quine  code-golf  number  sequence  code-golf  string  number  code-golf  array-manipulation  code-golf  number  code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

12
ゼロのように丸く
ゴール 入力番号が与えられたら、1桁の有効数字で最も近い数値に丸めます。 必要条件 入力 浮動小数点数。 入力数がデータ型の制限内の出力になると仮定します(つまり、オーバーフローエラーを無視します)。 0は無効な入力です。 浮動小数点データ型で正確に表現できない(たとえば"0.35"、として保存されている0.3499999)数値はサポートする必要はありません。 出力 1つの非ゼロ数字と任意の数のゼロ数字で構成される最も近い数字。 結果は負数と小数をサポートする必要があります。 入力が2つの可能な出力の間に正確にある場合、ゼロから切り上げます。 プレゼンテーション プレゼンテーションではなく計算に重点が置かれています。出力は浮動小数点データ型である場合があります。これは、完全な表記または科学表記のテキストのいずれかです。特定の方法を提示することでバイト数が減少する抜け穴が見つかった場合は、称賛に値します! 例 9 -3000 .2 0.2 -.2 7e12 5e-15 1e0 テストケース Input Output 1 1 10 10 17 20 99 100 54321 50000 56789 60000 -123 -100 -789 -800 0.23 0.2 0.25 0.3 -0.25 -0.3 4.56e23 5e23 …
12 code-golf  math 

16
バウンスモジュロ2数
モジュロ演算のグラフ()は次のようになります。y=xmodky=xmodky = x \mod k これは、「ラッピング」動作を作成できるため、非常に便利な機能です。ただし、2つの壁の間で「バウンス」のような外観を作成するために使用する場合、非常に面倒です。「バウンス」関数のグラフ()は次のようになります。y=bounce(x,k)y=bounce(x,k)y = \text{bounce} (x, k) y = xのグラフの期間は kです。y = バウンス(x 、k )のグラフの周期は 2 kです。これは、 k単位で上方に移動し、さらに k単位で下方に移動してから、開始位置に戻るためです。両方の関数について、 yの最小値は0、最大値は kです(実際、積分入力のモジュラス関数の場合、 k − 1です)。また、両方の関数で、 x = 0の値は0です。y=xmodky=xmodky = x \mod kkkky=bounce(x,k)y=bounce(x,k)y = \text{bounce} (x, k)2k2k2kkkkkkkyyykkkk−1k−1k-1x=0x=0x=0 チャレンジ 整数と正の整数kを指定すると、y = bounce (x 、k )の整数または浮動小数点近似を返します。xxxkkky=bounce(x,k)y=bounce(x,k)y = \text{bounce} (x, k) これはcode-golfであるため、最短の有効な送信(バイト単位)が勝ちます。 …

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