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

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

4
小さな言語は小さな通訳に値する
これは非常に簡単な言語定義です。 A Variable is any string that does not contain ^, <, >, !, or ? The empty string is a valid variable identifier The value of every variable starts at 0. A Statement is one of (var is a Variable, P is a Program): var^ -> changes var to …

30
ILDの合計を計算する
入力: 整数 出力: 入力自体の合計+入力の長さ+入力の個々の数字。 nr + nr-length + {sum of digits} = output 例: 入力:99 出力:99(nr)+ 2(nr-length)+ (9 + 9)(数字)→119 入力:123 出力:123 + 3 + (1 + 2 + 3)→132 チャレンジルール: 入力には、特別に解決される負の入力を含めることもできます。-/マイナス記号でもある+1長さのために、第一の部分ですdigit。 例えば: 入力:-123 出力:-123 + 4 + (-1 + 2 + 3)→-115 入力も出力も(32ビット)整数の範囲外になると想定できます。 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、コードゴルフ以外の言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターと戻り値型、完全なプログラムを持つ関数/メソッドを使用できます。あなたの電話。 …

5
JavaScriptでアルファベットを生成する
私はこれを行うためのより良い方法はないと確信していますが、尋ねることを傷つけることはできないと考えました。 入力するのはうんざりですa='abcdefghijklmnopqrstuvwxyz'。 クールな言語が持っているRange('a'..'z')か類似 できるだけ短いJSを考え出すにはどうすればよいですか? for(i=97,a='';i<123;){a+=String.fromCharCode(i++)} アルファベットよりも長いですが、どこかでめちゃくちゃにしないことを保証します。 私は、50文字未満でazを生成する厄介なビットシフトの方法があることを望んでいます。 私はいじりました i=97;Array(26).map(x=>String.fromChar....i++ しかし、それは私が参加したときまでずっとずっと長く、その後使用可能になるように配列(26)を分割しました 編集:私はそれを得た [...Array(26)].reduce(a=>a+String.fromCharCode(i++),'',i=97) 60バイト

4
パーティションの逆数
数n> 77が与えられた場合、セットの合計がnに等しく、セットの逆数の合計が1になるように、明確な正の整数のセットを見つけるプログラムまたは関数を記述します。 80の例: 80 = 2 + 4 + 10 + 15 + 21 + 28⟶1/2 + 1/4 + 1/10 + 1/15 + 1/21 + 1/28 = 1 プログラムまたは関数は、(理論的には)n <2 32で動作する必要があり、浮動小数点の丸め誤差は許されません。n> 77のすべてのソリューションが存在することに注意してください。 バイト単位の最短コードが優先されます。 ボーナスインセンティブがあります。任意のnで機能し、log(n)を実行する最小のソリューションに賞金を授与します。nが小さい場合、高速である必要があります(私の判断で決定されます)。はい、これは可能です。

18
Repdigit Base Finding
ぞろ目は、同じ数字を繰り返すことによってのみ書き込むことができる自然数です。たとえば、3回繰り返される777数字のみで構成されるため、repdigit 7です。 ただし、これは単に10進数(10進数)に限定されません。 (M n = 2 n -1の形式の)すべてのメルセンヌ数は、バイナリ(基数2)で書かれた場合、repdigitです。 単項(基数1)で記述されている場合、すべての数字は簡単にrepdigitです。 すべての数値nは11、基本的にrepdigitとして簡単に記述できますn-1(たとえば、1716進数(16進数)で記述されている場合は11、32進数(2 進数)で記述されている場合も同様です11)。 ここでの課題は、入力番号がrepdigitである可能性のある他のベースを見つけることです。 入力 x > 3任意の便利な形式の正の整数。 出力 正の整数bと(x-1) > b > 1の表現ここでxベースではbぞろ目です。 そのようなものbが存在しない場合、出力0または何らかの偽の値。 そのようなものbが複数存在する場合、それらのいずれかまたはすべてを出力できます。 ルール (x-1) > b > 1制限は、単項または「減算つ」塩基に些細な変換を防止するためです。出力数は、単項または任意の便利な塩基で書くことができるが、基部自体は些細な変換のいずれかであってはなりません。 入出力は、任意の適切な方法で行うことができます。 標準的な抜け穴の制限が適用されます。 例 In --> Out 11 --> 0 (or other falsey value) 23 --> 0 (or other falsey …

1
整数を分離する
前書き トポロジーとして知られる数学の分野では、分離公理と呼ばれるものがあります。直感的に、のセットXとサブセットのコレクションがありX、これらをプロパティと考えることができます。Xプロパティに基づいてすべてのアイテムを区別できる場合、システムは十分に分離されています。分離公理はこの考えを形式化します。この課題でのタスクは、指定された3つの分離公理Xとプロパティのリストを確認することです。 入力 入力は整数n ≥ 2であり、整数のリストのリストTです。の整数はTから描画されX = [0, 1, ..., n-1]ます。のリストはT空でソートされていない場合がありますが、重複は含まれません。 出力 出力は4つの文字列の1つであり、3つの分離公理によって決定され、それぞれが最後のものよりも強力です。他の公理もありますが、簡単にするためにこれらを使用します。 すべてのdistinct xおよびyinについてX、Tそのうちの1つだけを含むリストが存在するとします。次にX、公理T0をT満たします。 すべての明確なためと仮定xし、yでX、そこに二つのリストが存在してT含まれているの一つ、xではなくy、その他に含まれていyますがありませんx。次にX、公理T1をT満たします。 上記の2つのリストにも共通の要素が含まれていないとします。次にX、公理T2をT満たします。 あなたの出力は次のいずれかであるT2、T1、T0またはTS、(保持している上記の条件のどれに応じて、TSそれらの手段のどれも行いません)。T2はT1よりも強く、T1はT0よりも強いことに注意してください。常に可能な限り強い公理を出力する必要があります。 ルールとスコアリング 完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース 2 [] -> TS 2 [[],[1]] -> T0 2 [[0],[1]] -> T2 3 [[0],[0,1,2],[1,2]] -> TS 3 [[],[0],[0,1],[2]] -> T0 3 [[0],[0,1],[2,1],[0,1,2]] -> T0 3 [[0],[0,1],[2,1],[2,0]] -> T1 6 …

11
このメモの頻度は?
クイックミュージックリフレッシャー: ピアノの鍵盤は88音で構成されています。各オクターブには、12の音符がC, C♯/D♭, D, D♯/E♭, E, F, F♯/G♭, G, G♯/A♭, A, A♯/B♭ありBます。「C」を押すたびに、パターンは1オクターブ高くなります。 メモ一意キーボードの0〜8〜第3音の数は1)任意のシャープまたはフラットを含む文字、および2)オクターブによって識別されているA0, A♯/B♭とB0。この後、オクターブ1 C1, C♯1/D♭1, D1, D♯1/E♭1, E1, F1, F♯1/G♭1, G1, G♯1/A♭1, A1, A♯1/B♭1とのフルクロマチックスケールが続きますB1。この後、オクターブ2、3、4、5、6、および7のフルクロマティックスケールが続きます。その後、最後の音符はになりC8ます。 各音は20〜4100 Hzの範囲の周波数に対応しています。A0正確27.500ヘルツから始まる、それぞれ対応するノートは、二つの、又は略1.059463の第十二回ルート前のノートです。より一般的な式は次のとおりです。 ここで、nはノートの番号で、A0は1です(詳細はこちら)。 チャレンジ メモを表す文字列を取り込み、そのメモの頻度を出力または返すプログラムまたは関数を作成します。#シャープ記号(または、Younginsのハッシュタグ)にはポンド記号を使用bし、フラット記号には小文字を使用します。すべての入力は(uppercase letter) + (optional sharp or flat) + (number)空白なしで表示されます。入力がキーボードの範囲外(A0未満またはC8を超える)であるか、無効な文字、欠落文字、または余分な文字がある場合、これは無効な入力であり、処理する必要はありません。また、E#やCbなどの奇妙な入力を取得しないと安全に想定できます。 精度 無限の精度は実際には不可能なので、真の値の1セント以内であれば何でもかまいません。余分な詳細に進むことなく、セントは2の1200のルート、つまり1.0005777895です。具体例を使用して、より明確にします。入力がA4だったとします。この音の正確な値は440 Hzです。一度セントフラットです440 / 1.0005777895 = 439.7459。一度セントシャープになると、440 * 1.0005777895 = 440.2542したがって、439.7459より大きく440.2542より小さい数値であれば、十分に正確にカウントできます。 テストケース …
21 code-golf  music 

7
増加するサイズでプログラムを生成する
この課題では、元のプログラムの2倍の長さのプログラムを出力するプログラムを作成します。出力されたプログラムは、出力の新しいプログラムは、プログラムが倍増する必要があり、その長さを。 例 私のプログラムがa次の場合: < a > aa < aa > aaaa < aaaa > aaaaaaaa ルール クインは組み込まれていません 元のプログラムは少なくとも1バイトである必要があります シーケンスは理論的には無限に機能するはずです あなたのプログラムは何(ファイル、stdio)からも読み取ることはできません スコアは元のプログラムのサイズです。

7
単純なシステムの静電ポテンシャル
物理学では、電荷のように反発し、電荷とは異なります。 距離を隔てた2つの単位電荷間のポテンシャルエネルギーdは1/d、同様の電荷と-1/d異なる電荷です。電荷システムのポテンシャルエネルギーは、電荷のすべてのペア間のポテンシャルエネルギーの合計です。 チャレンジ 文字列で表される単位電荷のシステムのポテンシャルエネルギーを決定します。 これは code-golfであるため、バイト単位の最短ソリューションが優先されます。 入力 のみからなる空でない複数行の文字列、+、-、 各ライン一定幅の改行。+と-、それぞれ+1と-1の電荷を表します。たとえば、次の文字列: + - + (左上を原点とみなす)は、(4,0)と(1、-1)に正電荷、(6,0)に負電荷を持つシステムを表します。 または、入力を行のリストとして取得することもできます。 出力 電荷システムのポテンシャルエネルギーを表す符号付き実数。出力は、4つの有効数字または10 -4のうち、どちらか緩い方に修正する必要があります。 テストケース: - 出力する必要があります0。反発または引き付ける電荷のペアはなく、空白は何も変更しません。 + - 料金は2つのみです。それらは垂直方向に1単位、水平方向に2単位離れているため、距離はsqrt(5)です。出力は-1 / sqrt(5)=になり-0.447213595ます。 + - - + 与える必要があります-2.001930531。 - -- -+ - - -+-++-+ +-- + +-- + ++-++ - ---++-+-+- -+- - +- -- - -++-+ --+ …

1
一般的なGame of Lifeパターンを数える
ここでのタスクは.rle、ファイル名が(STDINまたはコマンドライン引数として)提供されているGolly またはプレーンテキストファイル(選択)から読み取り、そこにエンコードされたグリッド内の共通パターンを識別してカウントすることです。 または、代わりにSTDIN経由でファイルの内容を直接提供することもできます。 あなたのプログラムは少なくとも15の最も一般的な厳密な静物と5つの最も一般的な発振器とグライダーを特定し、区別できるべきです。 グライダーの4つの位相すべてと同様に、これらのオシレーターのすべての位相を認識する必要があります。 各パターンの最終カウントを含むリストを出力し、各パターンの名前と数量を別々の行に出力する必要があります。プログラムは、これらのパターンのすべてまたは少なくとも1つが見つかったパターンのみを出力リストに含めることができます。 カウントされる他のパターンの一部であるパターンはカウントされません。(たとえば、ビーコンの8セルフェーズは2ブロックとしてカウントされるべきではなく、船のタイも2隻としてカウントされるべきではありません) 入力がすでに安定しており、前述のセットにないパターンが含まれていないことを想定できます。入力グリッドが1024x1024ボックス内に収まると仮定することもできます。 これはcode-golfなので、最短のプログラムが優先されます。 RLEファイル形式の説明 RLEファイルには、ランレングスでエンコードされたライフグリッドが含まれています。で始まる行はすべて#コメントであり、無視する必要があります。 最初の空ではなく、コメントではない行はの形式x=<width>,y=<height>,rule=<rule>です。このタスクの目的上、ルールは常にになりますB3/S23。この行を処理する前に削除する必要があるスペースを含めることができます(もちろん、この行を処理する必要はまったくありません。) 最初の行の後の非コメント行は、単一の文字列として扱われるべきです。これは、小数点以下の数字、文字で構成されなければならない$、bとo、改行、および数字で終了しません。改行は無視されますが、改行は数字列に割り込まないと想定できます。 これは単一で終えられるかもしれません!。 b死んだセル、o生きているセル、$行の終わりを表します。10進数は、次の記号が何度も繰り返されるものとして扱われることを示します。 平文パターンエンコーディング もう1つのオプションは、ここで説明する別のプレーンテキスト形式でパターンを読み取ることです。このエンコーディングでは、オフセルはハイフンで表され、オンセルは大文字のOで表され、改行で行が区切られます。 非コメント行はすべて、ハイフンで同じ長さにパディングされると想定できます。 で始まる行!はコメントであり、無視されます。 いくつかのテストケース RLE: #This is a comment x = 35, y = 16, rule = B3/S23 bo$2o$obo5$22bo$22bo$22bo2$18b3o3b3o2$22bo$22bo10b2o$22bo10b2o! 平文: !This is a comment -O--------------------------------- OO--------------------------------- O-O-------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------O------------ ----------------------O------------ ----------------------O------------ …

2
多項式のシンボリック統合
与えられた文字列に不定積分を適用します。使用するルールは、次のように定義されます。 ∫cx^(n)dx =(c /(n + 1))x ^(n + 1)+ C、n≠-1 c、C、およびnはすべて定数です。 仕様: 多項式を可能な機能のいずれかと統合できる必要があります。 係数、場合によっては形式の分数(numerator/denominator)。 eおよびπが定数であり、それらを使用すると、分数またはそれらを含む式を形成できることを認識します((e/denominator)または(numerator/e)などの分数、または指数の場合はx^(e+1)) これら2つの特別な定数は別として、すべての係数は合理的な実数になります。 形式の指数、場合によっては分数 x^(exponent) それらを含むeまたはπその中の式は、それ自体は別として、指数ではありません。(のようなものを統合する必要はありませんが、統合x^(e+1)するかもしれませんx^(e)) x以外の1文字の変数を使用できます(つまりf) これは、ASCII範囲65〜90および97〜122のみです。 チェーンルールを使用したり、統合したりする必要はありませんx^(-1)。 出力にはパディング(用語間の分離、つまりx^2 + x + C。 上記の機能と統合する方法が不明な場合、プログラムは出力する必要があります"Cannot integrate "+input。 完全なプログラムでなければなりません。 ボーナス: マークダウン用にフォーマットされた「きれいな」指数を印刷する場合は、-10%(代わりにx^2、x<sup>2</sup>)。 方程式を印刷する場合は-10%(つまり∫xdx = (1/2)x^2 + C) 例: 入力: x 出力: (1/2)x^(2) + C 入力: -f^(-2) 出力: f^(-1) + …

5
Pyth Practice 2
別のPythの練習の時間です。ここでは、Pythソリューションを使用した8つの問題ステートメントを紹介します。これらのソリューションは、Pyth初心者によって書かれています。Pythonの答えよりもはるかに短いため、彼はこれらのソリューションに非常に満足しています。しかし、あなたの仕事は彼をより良く見せることです。同等の短いプログラムを作成します。 これは、Pythでゴルフをするときに使用できるトリックと最適化に関する課題です。Pythゴルファーは、関連するトリックの多くを認識している可能性があり、それがソリューションの短縮につながります。ただし、一部の問題には、めったに使用されないいくつかの異常なアプローチが必要になります。実際に私が実際に見たことのないいくつかのトリック。ただし、バグや奇妙な動作を必要とするソリューションはありません。これはPythの設計者が意図したものではありません。すべての回答は、この質問の投稿時点での最新のPythコミット(2b1562b)に対して有効でなければなりません。Pythインタープリターを使用できます検査用の。現時点では最新であり、Pythに大きな変更が加えられることはないと思います。これにより、最適なソリューションが無効になったり、短いソリューションが可能になります。オンラインインタープリターは、新しいキャラクターリファレンスも備えています。それはかなり新しいので、何かが間違っていたり欠落している場合に備えて、古いドキュメントを使用することもできます(すべきです)。 目標:リファレンスソリューションの合計は81バイトです。あなたの目標は、可能な限りそれを打ち負かすことです。合計バイト数が最小の8つの問題すべてを解決する提出が勝ちです。Tiebreakerは提出日です。 もちろん、8つの問題すべての解決策を含む提出物のみが有効です。1つ(または複数)の特定の問題のスコアを改善できない場合は、参照実装を使用できます。 ソリューションは、参照ソリューションとまったく同じ出力を印刷する必要があります。オプションの末尾の改行を除きます。 これはPythのプラクティスであるため、Pyth言語で書かれたプログラムのみが許可されます。 回答:合計スコアを除き、回答全体をネタバレしてください。あなたがあなた自身のものを提出する前に、他の人の答えを見ないことを意図しています。>!を置くことでネタバレを作成できます。次のようなすべての行の前に: >! Problem 1: V9m?>dNd0S9 (11 bytes) >! Problem 2: VTN)VGN (7 bytes) >! ... 難しい問題やささいな問題を選ばなかったことを願っています。多くの参加者とすべての人がPythについていくつかの新しい洞察を得ることを期待しています。ハッピーゴルフ! 問題1: 次の9x9マトリックスを作成して印刷します。 [1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 2, 3, 4, 5, 6, 7, 8, 9] [0, 0, 3, 4, 5, 6, 7, 8, …
21 code-golf  pyth 

6
三角ウラムスパイラル
ウラムのスパイラルについて、いくつかの課題がありました。しかし、それだけでは十分ではありません。 この課題では、三角形のウラムスパイラルをプロットします(通常の正方形のウラムスパイラルとは対照的に)。スパイラルがどのように見えるかのスケッチを次に示します。 私たちが知っているように、ウラムの螺旋はすべての自然数を外側の螺旋に配置し、素数のみをマークします。したがって、上記のスケッチでは、黒で表示される数字(素数)のみが表示されます。 チャレンジ 入力として数値Nを受け入れ、その数値まで三角形のUlamスパイラルを表示します。 入力は、stdinまたは関数の引数にすることができます。 上の図のように、螺旋は正の方向(つまり、反時計回り)に回転するはずです。 上記の図の120度の回転はいずれも有効であり、入力ごとに回転が異なる場合があります。ただし、許可されるターンは120度(の倍数)のみであるため、暗黙の三角形の最下部は水平になります。 コードは、デフォルトのデータ型を使用して行う中間計算で許可されているNまで、理論的に(十分な時間とメモリを与えて)実行する必要があります。double十分です; 大きな整数型は必要ありません。 すべての組み込み関数が許可されています。 私は自分の答えを受け入れません(それがとにかく最短になるとは思いませんが...)。 出力形式 次のいずれかを選択します。 素数ではマーカー(点、円、十字など)を使用してグラフを表示し、非素数では何も表示しません。スケールは2つの軸で同じである必要はありません。つまり、暗黙の三角形は正三角形である必要はありません。軸、グリッド線、軸ラベルはオプションです。素数のマーカーのみが必要です。 N = 12の出力例は次のとおりです(上記のスケッチと比較してください)。2番目のプロットは、N = 10000に対応する、より興味深い例です。 生成画像ファイル(例えば、PNG、TIFF、BMPなど)任意のよく知られた画像形式で、上記と。 スパイラルをASCIIアートとして表示します。プライムには選択した単一の文字を使用し、非プライムには空白スペースを使用し、同じ行の数字の位置を区切る空白スペースを使用します。先頭または末尾のスペースまたは改行を使用できます。たとえば、as文字として使用するN = 12の場合oは、 o · · · o · o · · · o · o もちろん、o実際には素数のマークのみが表示されます。·非素数ではあくまで参考のためにここに示されています。 勝利基準 実際の報酬は、コードゴルフ、最短コード勝利という驚くべきパターンを見ることです。

3
私の障害物コースはどの程度変化しますか?
バックグラウンド 長方形の部屋に箱を置いて、簡単な障害物コースを構築しました。今、私はそれが解決できる本質的に異なる方法の数を数えたいです。そのためのプログラムを書いてほしい。 入力 入力は、文字の空でない長方形の配列です.#。ドット.は空きスペースであり、#障害物です。 パス障害物までは、もちろん右下隅にある左上隅と端で始まり、そして唯一の右またはダウンしました。また、有効なパスは障害物を通過できません。以下に、- +文字を使用したいくつかの例を示します。 Valid path Invalid path Invalid path Invalid path ++........ ++........ +++++..... ..+....... .++++++#.. .+.....#.. ....+++#++ ..++...#.. ......+#.. .+.++++#.. .......#.+ ...+++.#.. ....#.++++ .+++#.++++ ....#....+ ....#+.... 2つのパスは、一度に1つずつ移動することで一方を他方に変換できる場合、基本的に1 +中間のパスも有効でなければならないため、障害物の上でパスを曲げることはできません。たとえば、ここの最初の2つのパスは基本的に似ていますが、3番目のパスは2つの障害物の上をくねることができないため、基本的にそれらとは異なります。 ++........ +......... +++++++++. .+++++.#.. ++.....#.. .......#+. .....+.#.. .++++++#.. .......#++ ....#+++++ ....#.++++ ....#....+ 出力 出力は、障害物コースを通る本質的に異なるパスの数です。つまり、すべての有効なパスが本質的に同様のパスのクラスに分割される場合、出力はクラスの数になります。有効なパスがない場合、この番号は0になる場合があります。 ルールとスコアリング 完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。時間制限はありませんが、提出する前にすべてのテストケースでプログラムを評価する必要があります。 テストケース .... …

2
これらの木は同型ですか?
前書き この課題では、与えられた2つのツリーが同型かどうかを判断するプログラムを作成します。ツリーとは、ルートを除くすべてのノードの発信エッジが1つだけである有向非循環グラフを意味します。ノードの名前を変更して一方を他方に変換できる場合、2つのツリーは同形です。たとえば、2つのツリー(すべてのエッジが上を向いている) 0 0 /|\ /|\ 1 3 4 1 2 5 |\ /| 2 5 3 4 簡単に同型であることがわかります。 L次の方法で、ツリーを非負整数のリストとしてエンコードします。ツリーのルートにはラベルがあり0、ノードもあり1,2,...,length(L)ます。各ノードにi > 0は、L[i](1ベースのインデックス付けを使用して)発信エッジがあります。たとえば、リスト(要素の下にインデックスが指定されている) [0,0,1,3,2,2,5,0] 1 2 3 4 5 6 7 8 ツリーをエンコードします 0 /|\ 1 2 8 | |\ 3 5 6 | | 4 7 入力 入力は、ネイティブ形式または言語で指定された2つの非負整数のリストです。上記で指定した方法で2つのツリーをエンコードします。それらについて、次の条件を想定できます。 空ではありません。 それらは同じ長さです。 …

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