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

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

8
alphabeTrieを作成する
次のアルファベット順にソートされた単語のリストを検討してください。 balderdash ballet balloonfish balloonist ballot brooding broom すべての単語はで始まりb、最初の5つはで始まりbalます。最初の2つの単語だけを見ると: balderdash ballet 代わりに書くことができます: balderdash +let ここ' 'で、単語が前の単語と接頭辞文字を共有する場所で使用されます。'+'2番目の単語が前の単語と接頭辞を共有する最後の文字を示す文字を除きます。 これは一種の「トライ」視覚化です。親は「bal」であり、2つの子孫が'derdash'あり'let'ます。 次のような長いリストの場合: balderdash ballet brooding さらに、パイプ文字'|'を使用して、次のように共有プレフィックスの末尾を明確にすることができます。 balderdash | +let +rooding そして、同等の木は根のだろう'b'2人の子供持つ:サブツリーたルート'al'と、その2人の子供'derdash'とを'let'、および'rooding'。 この戦略を元のリストに適用すると、 balderdash ballet balloonfish balloonist ballot brooding broom 次のような出力が得られます。 balderdash | +let | +oonfish | | +ist | +t +rooding +m リスト内の2つの連続した単語に共有プレフィックスがない場合、特殊文字は置換されません。例えばリストの場合: broom …
31 code-golf  string 

7
何を忘れましたか?
あなたの仕事は、バイトのシーケンスで構成される空でないコンピュータープログラムを書くことです。プログラム内の特定のバイトを選択し、そのインスタンスをすべてプログラムから削除すると、変更されたプログラムは削除されたバイトを出力するはずです。 たとえば、プログラムが aabacba 次に、bcb出力しa、出力aaacaする必要があり、出力bしaababaますc。 変更されていないプログラムが何をするかは問題ではありません。 回答は、バイト数を最小化することを目的として、バイト単位でスコアリングされます。

9
整数のqvolume
すべての負でない整数は4つの2乗整数の合計として書き換えられることは古くからの知識です。たとえば、数値1は02+02+02+1202+02+02+120^2+0^2+0^2+1^2として表現できます。または、一般に、負でない整数nnn、整数a,b,c,da,b,c,da,b,c,dように n=a2+b2+c2+d2n=a2+b2+c2+d2n = a^2+b^2+c^2+d^2 ジョセフ=ルイ・ラグランジュはこれを1700年代に証明したので、しばしばラグランジュの定理と呼ばれます。 これは時々四元に関連して説明されている-によって発見数の種類ウィリアム・ハミルトンとして表さ1800年代に、w+xi+yj+zkw+xi+yj+zkw+x\textbf{i}+y\textbf{j}+z\textbf{k}w,x,y,zw,x,y,zw,x,y,zの実数であり、およびi,ji,j\textbf{i}, \textbf{j}およびkk\textbf{k}は、可換的に乗算しない別個の虚数単位です。具体的には、四元数w 2 + x 2 + y 2 + zの各成分の2乗に関連して説明します。w2+x2+y2+z2w2+x2+y2+z2w^2+x^2+y^2+z^2この量は、ノルム、二乗ノルム、または四分円とも呼ばれます。ラグランジュの定理のいくつかの現代の証明では、四元数を使用しています。 ルドルフ・リプシッツは、リプシッツ四元数と呼ばれる整数成分のみを持つ四元数を研究しました。四分円を使用すると、すべてのリプシッツ四元数が整数の友人を持つと考えることができると想像できます。たとえば、クォータニオン0+0i+0j+1k0+0i+0j+1k0+0\textbf{i}+0\textbf{j}+1\textbf{k}は、整数1=02+02+02+121=02+02+02+121=0^2+0^2+0^2+1^2関連付けられていると考えることができます。また、逆方向に進むと、すべての整数はリプシッツ四元数に友人がいると考えることができます。 しかし、ラグランジュの定理には興味深い詳細があります。合計は一意ではありません。各整数には、合計して作成できる4つの正方形のいくつかの異なるセットがある場合があります。たとえば、数値1は、非負の整数を使用して4つの方法で表現できます(このチャレンジでは非負のみを考慮してください): 1=02+02+02+121=02+02+02+121=0^2+0^2+0^2+1^2 1=02+02+12+021=02+02+12+021=0^2+0^2+1^2+0^2 1=02+12+02+021=02+12+02+021=0^2+1^2+0^2+0^2 1=12+02+02+021=12+02+02+021=1^2+0^2+0^2+0^2 被加数は常に0または1の2乗ですが、式の異なる位置に配置できます。 この課題では、重複を排除するために被加数を最低から最高に「ソート」して、この演習では1が4つの正方形の合計として表される1つの方法しかないと考えられるようにします。 1=02+02+02+121=02+02+02+121=0^2+0^2+0^2+1^2 もう1つの例は、4つの方法で表現できる42番です(ここでも、非負のa、b、c、dのみを考慮し、重複するコンポーネント配置を排除します) 42=02+12+42+5242=02+12+42+5242=0^2+1^2+4^2+5^2 42=12+12+22+6242=12+12+22+6242=1^2+1^2+2^2+6^2 42=12+32+42+4242=12+32+42+4242=1^2+3^2+4^2+4^2 42=22+22+32+5242=22+22+32+5242=2^2+2^2+3^2+5^2 整数を特定の四元数に関連付けられていると表現するこれらの異なる方法のそれぞれを想像するとどうなりますか?次に、42という数字がこれらの4つの四元数に関連付けられていると言えます。 0+1i+4j+5k0+1i+4j+5k0+1\textbf{i}+4\textbf{j}+5\textbf{k} 1+1i+2j+6k1+1i+2j+6k1+1\textbf{i}+2\textbf{j}+6\textbf{k} 1+3i+4j+4k1+3i+4j+4k1+3\textbf{i}+4\textbf{j}+4\textbf{k} 2+2i+3j+5k2+2i+3j+5k2+2\textbf{i}+3\textbf{j}+5\textbf{k} ii\textbf{i}、jj\textbf{j}、kk\textbf{k}が3次元ユークリッド空間のベクトルであるため、クォータニオンの標準的なコンピューターグラフィックスの解釈を想像すると、クォータニオンのxxx、yyy、zzz成分は3次元のデカルト座標になります。整数は、この思考プロセスを通じて、空間内の3次元座標のセットに関連付けることができます。たとえば、番号42は、次の4つの(x,y,z)(x,y,z)(x,y,z)座標に関連付けられています:(1,4,5),(1,2,6),(3,4,4),(2,3,5)(1,4,5),(1,2,6),(3,4,4),(2,3,5)(1,4,5),(1,2,6),(3,4,4),(2,3,5) これは、点群、または空間内の点のセットと考えることができます。さて、空間内の有限点のセットに関する興味深い点の1つは、周囲に最小限の境界ボックスを常に描画できることです。このボックスは、すべてのポイントを収めるのに十分な大きさを持ちます。ボックスがx,y,zx,y,zx,y,z軸で整列された通常のボックスであると想像する場合、それは軸整列境界ボックスと呼ばれます。境界ボックスには、幅、長さ、高さを決定し、それらを掛け合わせることで計算可能なボリュームもあります。 次に、四元数によって形成されるポイントの境界ボックスのボリュームを想像できます。整数1には、この演習の基準を使用して、象限が0+0i+0j+1k0+0i+0j+1k0+0\textbf{i}+0\textbf{j}+1\textbf{k}である1つのクォータニオンがあります。これは非常に単純なポイントクラウドであり、1つのポイントしか持っていないため、バウンディングボックスのボリュームは0です。ボックスの最小点である(1,2,4)(1,2,4)(1,2,4)最大である(3,4,6)(3,4,6)(3,4,6) その結果、幅、長さ、高さが2、2、2になり、ボリュームが8になります。 整数ためものとするnnn、qvolumeはquadranceを有する四元により形成された全ての3D点の軸平行境界ボックスの容積が等しいnnn、ここで四元数の成分w+xi+yj+zkw+xi+yj+zkw+x\textbf{i}+y\textbf{j}+z\textbf{k}は非負で、w&lt;=x&lt;=y&lt;=zw&lt;=x&lt;=y&lt;=zw<=x<=y<=zです。 単一の非負整数nnn与えられると、nnnのqvolume を出力するプログラムまたは関数を作成します。 例: input -&gt; output 0 -&gt; 0 1 …

23
デッキのシャッフルをやめて、もうプレイしてください。
チャレンジ: 入力:範囲内の明確な正整数の。[1,list-size][1,list-size][1, \text{list-size}] 出力:整数:リストがリッフルシャッフルされる回数。リストの場合、これはリストが2つの半分に分割され、これらの半分がインターリーブされることを意味します(つまり、リストを[1,2,3,4,5,6,7,8,9,10]1回リッフルシャッフルすると結果が[1,6,2,7,3,8,4,9,5,10]になるため、このチャレンジでは入力[1,6,2,7,3,8,4,9,5,10]がになります1)。 チャレンジルール: リストには、の範囲の正の整数のみが含まれると仮定でき(または 0インデックス付きの入力リストを選択した場合は)。[1,list-size][1,list-size][1, \text{list-size}][0,list-size−1][0,list-size−1][0, \text{list-size}-1] すべての入力リストは、有効なリフルシャッフルリスト、またはシャッフルされていないソート済みリスト(この場合、出力は0)のいずれかであると想定できます。 input-listには少なくとも3つの値が含まれると想定できます。 段階的な例: 入力: [1,3,5,7,9,2,4,6,8] 一度アンシャフリングすると[1,5,9,4,8,3,7,2,6]、次のよう[1, ,5, ,9, ,4, ,8]になります。偶数の0インデックスが付けられたすべてのアイテムが最初に来て、その後、奇数の0インデックスが付けられたすべてのアイテムがその後に来るためです[ ,3, ,7, ,2, ,6, ]。 リストはまだ順序付けられていないため、続行します。 もう一度リストをUnshufflingは次のようになります[1,9,8,7,6,5,4,3,2] :再びになる[1,8,6,4,2,9,7,5,3] その後:[1,6,2,7,3,8,4,9,5] :そして最後に[1,2,3,4,5,6,7,8,9]、我々はunshuffling行われているので、順序付けられたリストです。 を取得するために元のファイルを[1,3,5,7,9,2,4,6,8]5回シャッフル解除した[1,2,3,4,5,6,7,8,9]ため、出力は5この場合になります。 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、コードゴルフ以外の言語で回答を投稿しないようにしないでください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 デフォルトのI / Oルールを使用した回答には標準ルールが適用されるため、STDIN / STDOUT、関数/メソッド、適切なパラメーター、戻り値型、完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテスト(TIOなど)へのリンクを追加してください。 また、回答の説明を追加することを強くお勧めします。 テストケース: Input Output [1,2,3] 0 [1,2,3,4,5] 0 [1,3,2] 1 …

21
球上のランダムポイント
チャレンジ 入力を受け取らず、理論的に均一なランダム方向に長さ111ベクトルを出力するプログラムまたは関数を作成します。 これは、x 2 + y 2 + z 2 = 1で記述される球上のランダムポイントに相当します。x2+y2+z2=1x2+y2+z2=1x^2+y^2+z^2=1 そのような分布をもたらします 出力 方程式x2+y2+z2=1x2+y2+z2=1x^2+y^2+z^2=1が精度の限界に当てはまる理論的に均一なランダム分布からの3つのフロート。 チャレンジ発言 ランダム分布は理論的に均一である必要があります。つまり、擬似乱数ジェネレーターを実数からの真のRNGに置き換えると、球体上の点のランダムな分布が均一になります。 一様分布から3つの乱数を生成し、それらを正規化することは無効です。3次元空間の隅に向かって偏りがあります。 同様に、一様分布から2つの乱数を生成し、それらを球座標として使用することは無効です。球の極に向かってバイアスがかかります。 適切な均一性は、以下を含むがこれらに限定されないアルゴリズムによって達成できます。 0付近の正規(ガウス)分布から3つの乱数xxx、yyy、zzzを生成し、それらを正規化します。 000 実装例 3つの乱数発生するxxx、yyy及びzzzから均一な範囲の分布(−1,1)(−1,1)(-1,1)。ベクトルの長さをl = √で計算しますl=x2+y2+z2−−−−−−−−−−√l=x2+y2+z2l=\sqrt{x^2+y^2+z^2}。次に、l&gt;1l&gt;1l>1場合、ベクトルを拒否し、新しい数値セットを生成します。場合他、l≤1l≤1l \leq 1、ベクトルを正規化し、結果を返します。 実装例 2つの乱数発生iii及びjjjより均一な範囲の分布(0,1)(0,1)(0,1)などのような球座標に変換:θϕ=2×π×i=cos−1(2×j−1)θ=2×π×iϕ=cos−1⁡(2×j−1)\begin{align}\theta &= 2 \times \pi \times i\\\\\phi &= \cos^{-1}(2\times j -1)\end{align}ので、xxx、yyy、zzzは xで計算できますxyz=cos(θ)×sin(ϕ)=sin(θ)×sin(ϕ)=cos(ϕ)x=cos⁡(θ)×sin⁡(ϕ)y=sin⁡(θ)×sin⁡(ϕ)z=cos⁡(ϕ)\begin{align}x &= \cos(\theta) \times \sin(\phi)\\\\y &= \sin(\theta) \times \sin(\phi)\\\\z &= …

5
8ビット仮想マシン
バックグラウンド 私は古い8ビット6502チップが好きです。6502マシンコードでPPCGの問題を解決するのは楽しいことです。しかし、単純であるべきいくつかのこと(データの読み取りやstdoutへの出力など)は、マシンコードで行うのは不必要に面倒です。だから、私の頭の中には大まかなアイデアがあります。6502に触発された独自の8ビット仮想マシンを発明します。何かを実装し始めて、VMの設計が最小限に抑えられている場合、これ自体が素晴らしい挑戦であるかもしれないことに気付きました:) 仕事 次の仕様に準拠する8ビット仮想マシンを実装します。これはcode-golfであるため、バイト数が最も少ない実装が優先されます。 入力 実装には、次の入力が必要です。 単一の符号なしバイトpc、これは初期プログラムカウンター(VMが実行を開始するメモリ内のアドレス、0ベース) 256エントリの最大長を持つバイトのリスト。これは仮想マシンのRAM(初期コンテンツを含む) この入力は、適切な形式で入力できます。 出力 VMが終了した後のRAMの最終的な内容であるバイトのリスト(以下を参照)。最終的に終了することにつながる入力のみを取得すると仮定できます。賢明な形式はすべて許可されます。 仮想CPU 仮想CPUには 8ビットプログラムカウンター、 呼ばれる8ビットアキュムレータレジスタAと という8ビットのインデックスレジスタX。 3つのステータスフラグがあります。 Z -何らかの操作の結果、ゼロフラグが設定された 0 N -負のフラグは、何らかの操作の結果が負の数になった後に設定されます(結果のビット7が設定されます) C -キャリーフラグは、結果の「欠落」ビットの加算とシフトによって設定されます スタート時には、フラグが全てクリアされ、プログラムカウンタは、与えられた値との内容に設定されているAとX不定です。 8ビット値は、 符号なしの範囲の整数[0..255] 範囲の符号付き整数、2の補数[-128..127] コンテキストに応じて。操作がオーバーフローまたはアンダーフローすると、値は折り返されます(また、追加の場合、キャリーフラグが影響を受けます)。 終了 仮想マシンは次の場合に終了します HLT命令に到達します 存在しないメモリアドレスがアクセスされた プログラムカウンターはメモリ外で実行されます(VMに256バイトのメモリがすべて与えられてもラップアラウンドしないことに注意してください) ドレッシングモード 暗黙的 -命令には引数がありません。オペランドは暗黙的です 即時 -オペランドは命令の直後のバイトです relative-(分岐のみ)命令が署名された後のバイト(2の補数)。分岐が行われた場合にプログラムカウンターに追加するオフセットを決定します。0次の命令の場所です absolute-命令の後のバイトは、オペランドのアドレスです インデックス付き -命令プラスX(レジスタ)の後のバイトは、オペランドのアドレスです 説明書 各命令はオペコード(1バイト)で構成され、アドレッシングモードでは、immediate、relative、absolute、およびindexedの2番目の引数バイトです。仮想CPUが命令を実行すると、それに応じて(1または2)プログラムカウンターをインクリメントします。 ここに示されているすべてのオペコードは16進数です。 LDA -オペランドをロードする A オペコード:即時:00、絶対:02、インデックス付き:04 …

22
雨を降らせる
このチャットミニチャレンジに触発されました。 入力として文字列(ASCII印刷可能文字のみ)が与えられた場合、「雨」の文字を含む文字列を出力します。各文字は、下向きのランダムな行数(0文字列の長さと長さがランダムで、それぞれの確率がゼロではない)で、列ごとに1文字のみである必要があります。可能性のあるすべての出力は、発生する可能性がゼロ以外である必要があります。 それは少し混乱するかもしれないので、ここに例があります(そのCMCから引用): Hello World d H o llo l W e r Hが1つ下のスペースdであり、ゼロが下であり、lloすべてが整列することに注意してください。のrで、最も遠いダウンしている9が、離れて上から文字列の長さよりもまだ小さいです。これはほんの一例であり、入力には他にも多くの可能性がありますHello World。 他の例は次のとおりです。 test t e s t PP&amp;CG &amp; G P P C 入力と出力は 任意の便利な方法で。 入力は空でないことが保証されます(つまり、受信することはありません ""入力として)。 STDOUTに出力するか、関数の結果として返すことができます。 完全なプログラムまたは機能のいずれかが受け入れられます。 文字が適切に並んでいる限り、任意の量の余分な空白を使用できます(たとえば、長方形として自由に埋めることができます)。 標準抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。

28
1Dのルークの動きを数える
ルークの列または空のスペース、あるいはその両方の位置が与えられた場合、いくつの異なるルークの動きが可能なかを出力します。ルークは左または右に空のスペースに移動できますが、別のルークを通過する必要があるスペースには移動できません。ルークが移動しても、他のルークはそのまま残ります。 たとえば、この位置から、6つの移動が可能です。 .R..RRR. 最初の(左端の)ルークは、左に1スペース、または右に1または2スペース移動できます(3移動) 次のルークは、左に1つまたは2つのスペースしか移動できません(2つの移動) 3番目のルークは、他の2つのルークの間で圧迫されているため、まったく移動できません(0移動) 最後のルークは右に1スペースしか移動できません(1移動) ポジションにはルークがまったくないか、空のスペースがまったくないことに注意してください。 入力:ルークと空のスペースの空ではないリスト(文字列、配列など)。それらは、True/ False、1/ 0、'R'/ '.'、または任意の2つの一貫した異なるシングルバイト文字または1桁の数字として表すことができます。どれがルークを意味し、どれが空きスペースを意味するかはあなた次第です。 出力:負でない整数。整数の浮動小数点数でも問題ありません。 テストケース 出力は左側の数字です。 6 .R..RRR. 0 . 0 R 4 R..RR 3 ...R 8 ..R..R.. 0 ...... より多くのテストケースについては、長さ5までのすべての入力があります。 0 . 0 R 0 .. 1 .R 1 R. 0 RR 0 ... 2 ..R 2 .R. 1 .RR …

23
ソースコードを転置し、入力を転置します!
ぼったくりのぼったくりのぼったくりのぼったくり。それらに賛成票を投じてください! 受け入れたい場合、あなたのタスクは、入力/引数を出力/返すプログラム/関数を書くことです¹。扱いにくい部分は、ソースコード²を転置する場合、出力/結果も転置する必要があることです。 ソリューションが受け入れることができる2Dデータの種類を選択できます。たとえば、リストのリスト、マトリックス、文字列のリストなど。どのリストを処理するかを指定します。入力は常に長方形で、各次元に沿って1以上の長さを持つと仮定できます。 転置のために、ソースコードの短い行は、長方形になるまで末尾のスペースが埋め込まれていると見なされますが、これらの埋め込まれた末尾のスペースはコードの長さに影響しません。 これはcode-golfであるため、ターゲットは元のソースコード(転置バージョンではなく)のバイトカウントを最適化することです。 例 ソリューションが数値行列を取り、ソースコードが AB DEF そしてその入力/引数は[[1,2],[3,4],[5,6]]です。書いたら AD BE F 代わりに実行してください[[1,3,5],[2,4,6]]。出力/結果はでなければなりません。 あなたのソリューションが改行で区切られた文字列を取り、ソースコードが ABC そしてその入力/引数は"96\n"です。書いたら A B C 代わりに実行してください"9\n6\n"。出力/結果はでなければなりません。

3
虹の終わりのセル
最も有名で影響力のある難解な言語の1つであるbrainfuckを知っているか、少なくとも聞いたことはあります。最近ではほとんどの実装で無限テープが使用されていますが、UrbanMüllerの元のコンパイラには30000セルのテープがありました。少し知られている事実*は、テープの最後に実際に特別な値があるということです。これは、典型的なブレインファックプログラムではほとんど対話されません。 この値を29999 &gt;sとa .で印刷できますが、brainfuckは短く簡潔な解決策で知られているため、目的はこの値を最小文字数で印刷することです。 *フィクション ルール: Brainfuck命令の復習: +/ -:現在のセルをインクリメント/デクリメントし、255がインクリメントされると255から0に折り返し、その逆も同様 &lt;/ &gt;:テープ上でポインターを左右に移動します .:現在のセルの値を出力します。 [:]セルの値が0の場合、対応するものにジャンプします ]:[セルの値が0でない場合、対応するものにジャンプします この場合,(元のコンパイラーはEOFでセルを変更せずに残すため)(入力の取得)は何も行いません。このプログラムは入力を受け取りません。 テープは最初はすべて0で満たされていますが、セル30000には不明な値が含まれています。 ポインターはセル1から始まり、セル30000で終了し、印刷されます。 1の左側と30000の右側のセルには未定義の動作があるため、ソリューションはこれらのセルにアクセスしないでください。 30000の値はあなたがゼロ以外のセルは動作しませんヒットするまで、そう単純にループし、0かもしれません。 セル30000の値のみを印刷する必要があります 最短のソリューションが勝ちです! タイブレーカーは、より効率的なプログラム(最小ステップで実行)であり、その後に最短の送信時間が続きます。 ヒント: Esolanging Fruitでは、https : //copy.sh/brainfuckを使用してコードをテストすることをお勧めします。仕様はこの課題で説明されているabortとおりであり、範囲外になった場合にプログラムが停止するようにオプションを選択できます。

30
2の累乗の合計
チャレンジ 整数の入力を指定xすると1 &lt;= x &lt;= 255、を合計したときに与える2のべき乗の結果を返しますx。 例 入力が与えられた場合: 86 プログラムは以下を出力するはずです。 64 16 4 2 入力: 240 出力: 128 64 32 16 入力: 1 出力: 1 入力: 64 出力: 64 特定の2のべき乗が合計に存在しない場合、出力にはゼロが含まれる場合があります。 たとえば、入力65はを出力する場合があります0 64 0 0 0 0 0 1。 得点 これはcode-golfであるため、各言語で最も短い回答が優先されます。
31 code-golf  binary  code-golf  sequence  integer  chess  code-golf  number  arithmetic  matrix  code-golf  code-golf  combinatorics  grid  set-partitions  code-golf  array-manipulation  graph-theory  code-golf  number  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  3d  code-challenge  restricted-source  printable-ascii  code-golf  board-game  code-golf  geometry  grid  code-golf  word-puzzle  code-golf  matrix  sorting  code-golf  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  code-golf  decision-problem  code-golf  math  number  arithmetic  restricted-source  code-golf  code-golf  number  integer  matrix  code-golf  date  code-golf  matrix  code-golf  sequence  combinatorics  chemistry  code-golf  array-manipulation  popularity-contest  code-golf  code-golf  natural-language  code-golf  number  integer  sorting  substitution  code-golf  string  number  date  encode  code-golf  decision-problem  code-golf  string  subsequence  code-golf  string  alphabet  code-golf 

10
Rationalsの内積を見つける
私は友人の家に夕食に行って、彼らは「素因数ベクトル空間」のアイデアを提案しました。この空間では、正の整数はベクトルとして表現され、ベクトルのn番目の要素はn番目の素数が数を分割する回数になります。(これは、ベクトルに無限の数の項があることを意味することに注意してください。)たとえば、20は 2 0 1 0 0 0 ... その素因数分解は2 * 2 * 5であるためです。 素因数分解は一意であるため、各数値は1つのベクトルに対応します。 エントリをペアごとに追加することで、ベクトルを追加できます。これは、関連付けられている数値を乗算するのと同じです。また、スカラー乗算を行うこともできます。これは、関連する数値を累乗するようなものです。 問題は、逆行列がないため、この空間は実際にはベクトル空間ではないことです。先に進んで逆行列を追加してベクトル空間を閉じると、すべての正の有理数をベクトルとして表現する方法ができました。ベクトルの加算が乗算を表すという事実を保持する場合。そして、自然数の逆数はその逆数です。 たとえば、数20のベクトルは 2 0 1 0 0 0 ... したがって、1/20の端数はその逆です -2 0 -1 0 0 0 ... 我々のような割合に関連したベクトル見つけたい場合は14/15を我々は見つけるだろう14 1 0 0 1 0 0 ... および1/15 0 -1 -1 0 0 0 ... そして、ベクトル加算を実行してそれらを乗算します 1 …

13
フライヤーシミュレーター
あなたの仕事は、食物に対する生地の影響をモデリングすることです。3層のクラストを追加してください。 [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0], // in [0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0], [0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]] | V [[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,1,2], [0,0,2,1,2,2,0,0,0,0,0,0,0,2,2,0,2,0], [0,0,2,1,1,1,2,0,0,0,0,0,2,1,1,2,0,0], [0,0,0,2,1,2,0,0,0,0,0,2,1,1,2,1,2,0], [0,0,0,0,2,0,0,0,0,0,0,0,2,1,1,1,2,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0]] | V [[0,0,3,2,3,3,0,0,0,0,0,0,0,3,3,2,1,2], [0,3,2,1,2,2,3,0,0,0,0,0,3,2,2,3,2,3], [0,3,2,1,1,1,2,3,0,0,0,3,2,1,1,2,3,0], [0,0,3,2,1,2,3,0,0,0,3,2,1,1,2,1,2,3], [0,0,0,3,2,3,0,0,0,0,0,3,2,1,1,1,2,3], [0,0,0,0,3,0,0,0,0,0,0,0,3,2,2,2,3,0]] | V [[0,4,3,2,3,3,4,0,0,0,0,0,4,3,3,2,1,2], // out [4,3,2,1,2,2,3,4,0,0,0,4,3,2,2,3,2,3], [4,3,2,1,1,1,2,3,4,0,4,3,2,1,1,2,3,4], [0,4,3,2,1,2,3,4,0,4,3,2,1,1,2,1,2,3], [0,0,4,3,2,3,4,0,0,0,4,3,2,1,1,1,2,3], [0,0,0,4,3,4,0,0,0,0,0,4,3,2,2,2,3,4]] ちょっとした視覚補助: コードスニペットを表示 body { background-color:#222; color:lightgray; } &lt;pre&gt; [[&lt;span style="color:gold"&gt;0&lt;/span&gt;,&lt;span style="color:gold"&gt;0&lt;/span&gt;,&lt;span style="color:gold"&gt;0&lt;/span&gt;,&lt;span style="color:gold"&gt;0&lt;/span&gt;,&lt;span style="color:gold"&gt;0&lt;/span&gt;,&lt;span style="color:gold"&gt;0&lt;/span&gt;,&lt;span …
31 code-golf  matrix 

9
ナンバープレートは何ポイントを与えますか?
(これは私の最初のコードゴルフの質問です) 私が子供の頃、父と私は、車にあるナンバープレートがいくつかの単純なルールに基づいて特定のポイントを与えることができるゲームを発明しました。 同じ文字または数字のX個の量は、X-1ポイントを与えます。例: 22 = 1 point aa = 1 point 5555 = 3 points 数字は互いに隣り合っている必要があるため3353、5は3のシーケンスを中断するため、1ポイントしか与えません。 昇順または降順のX番号のシーケンス、最低3、Xポイントを与えます、例: 123 = 3 points 9753 = 4 points 147 = 3 points ポイントシステムは1桁の数字に対してのみ機能するため1919、ポイントは与え14710ず、3(147)だけを与えます。 シーケンスを組み合わせて、より多くのポイントを作成できます。例: 1135 = 4 points (1 point for 11 and 3 points for 135) 34543 = 6 points (3 points …
31 code-golf  string 

30
爆発ダイスのシミュレーション
あなたの仕事は、整数を取り込んで片面ダイスのn &gt; 1ロールを出力するプログラムを作成することnです。ただし、このサイコロはサイコロを爆発させるためのルールに従います。 サイコロを振るとき、どの値を振ったかを確認してください。その種類のダイの最大値(4になる標準d4、またはd6の6など)を取得した場合、もう一度ロールして、その合計に新しいロールを追加します。各ロールは、最大数をロールしなくなるまで、合計に追加され続けます。ただし、その最終番号はまだ追加されています。 あなたのプログラムは単一の整数を取りn、爆発する側のnダイスを振る必要があります。これがどのように見えるべきかを示すための配布例ですn=4。nは常に爆発するため、の倍数は出力しないでください。 再帰のスタックサイズは無限であり、ランダム関数はランダム性の標準(組み込みランダムジェネレーターまたは時刻/日付)を満たしている必要があります。ランダム関数も可能な限り均一である必要があります。これは幾何分布のようなものです。これらは私たちが話しているサイコロだからです。
31 code-golf  random 

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