タグ付けされた質問 「number-theory」

数論は、主に正の整数である数の性質と関係を含みます。

14
配列エスケープ-そこから出て
ある日、目を覚まして、自分がアレイに巻き込まれているのを見つけます。そこから出て、一度に1つのインデックスを取得しようとしますが、他のルールがあるようです。 配列は自然数で完全に埋められます。 インデックスに自分自身を見つけた場合 nにいる場合は、index array[n]に移動しますが、次の場合を除きます。 あなたがn素数であるインデックスに自分自身を見つけた場合、あなたはarray[n]戻ってステップを取る 例:4この配列のindex から開始します(開始インデックスは0): array = [1,4,5,6,8,10,14,15,2,2,4,5,7]; -----------------^ you are here 現在のフィールドの値は8なので8、最初のステップとしてインデックスに移動します。着陸するフィールドには値が含まれています2。次に2、2番目のステップとしてインデックスに移動します。以下のよう2素数である、あなたはあなたの第三段階である、バックの5つのステップを取ります。インデックスがないため-3、合計3ステップで配列を正常にエスケープしました。 あなたの仕事は: パラメータとして配列と開始インデックスを受け取り、配列をエスケープするためのステップ数を出力するプログラムまたは関数を作成します。配列をエスケープできない場合(たとえば[2,0,2]、start-index 2=>を使用すると、常にインデックスから移動します)2からに0)、偽の値を出力します。1ベースのインデックス付けまたはゼロベースのインデックス付けを使用できますが、使用するものを指定してください。 テストケース 入力: [2,5,6,8,1,2,3], 3 出力: 1 入力: [2, 0, 2], 2 出力: false 入力: [14,1,2,5,1,3,51,5,12,3,4,41,15,4,12,243,51,2,14,51,12,11], 5 ; 出力: 6 最短の答えが勝ちです。

2
ファイナリ番号を標準化する
バックグラウンド ほとんどの人は、10進数、2進数、16進数、8進数などのいくつかの整数ベースシステムに精通している必要があります。たとえば、16進法では、abc.de 16という数字は次を表します。 a*16^2 + b*16^1 + c*16^0 + d*16^-1 + e*16^-2 ただし、無理数のような非整数ベースも使用できます。そのようなベースは、黄金比φ=(1 +√5)/ 2≈1.618 ...を使用します。これらは、整数ベースと同様に定義されます。数ようabc.deのφは、(ここに、eは桁の整数である)を表すことになります a*φ^2 + b*φ^1 + c*φ^0 + d*φ^-1 + e*φ^-2 原則として、数字のいずれかが負になる可能性があることに注意してください(私たちはそれに慣れていませんが)-先行する負の数字を表します~。この質問の目的のために我々はから数字に自分自身を制限~9する9ので、我々は明確に(間にチルダ付き)1つの文字列として番号を書くことができます。そう -2*φ^2 + 9*φ^1 + 0*φ^0 + -4*φ^-1 + 3*φ^-2 と書かれ~290.~43ます。私たちは、このような番号に電話phinary数。 進数は常に標準形式で表すことができます。これは、数字1とのみを使用し0、11どこにも含まず、オプションのマイナス記号を付けて数字全体が負であることを示すことを意味します。(興味深いことに、すべての整数は標準形式で一意の有限表現を持っています。) 標準形式ではない表現は、次の観察を使用して常に標準形式に変換できます。 011 φ = 100 φ(なぜならφ 2 =φ+ 1) 0200 φ = 1001 …

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 …

6
まだ迷っていますか?
あなたの仕事は整数シーケンスA130826を実装することです: a nは最小の正の整数で、a n -nは3の倍数であり、(a n -n)/ 3の約数の2倍はフラビウスによって生成されたシーケンスの最初の差のn 番目の項を与えますジョセフスふるい。 まだ失った?まあ、実際には非常に簡単です。 フラウィウスヨセフス篩は次のように整数のシーケンスを定義します。 正の整数のシーケンスから始めて、k = 2に設定します。 すべての削除のk 番目から始まる、一連の整数をk個目。 kをインクリメントし、ステップ2に戻ります。 f nは、削除されないn 番目の整数(1から始まる)です。 いつものように- -場合σ 0(k)が整数の正の約数の数示しkは、我々が定義することができ、N最小の正の整数であり、その結果として2σ 0((N = F - N)/ 3)N + 1を - F N。 チャレンジ 正の整数かかるプログラムや関数書き込みNを入力し、印刷物として、または返しNを。 標準のコードゴルフ規則が適用されます。最短のコードが勝つように! 実施例 正の整数の2番目の要素をすべて削除すると、次のようになります。 1 3 5 7 9 11 13 15 17 19 21 …

30
最小公倍数
正の整数のセットの最小公倍数はA最小の正の整数Bであり、各にkはA、nなどの正の整数が存在しk*n = Bます。 入力として少なくとも2つの正の整数を与え、それらの最小公倍数を出力します。 ルール ビルトインは使用できますが、ソリューションで使用する場合は、GCD / LCMビルトインを使用しない代替ソリューションを含めることをお勧めします。ただし、代替ソリューションはスコアにはまったくカウントされないため、完全にオプションです。 すべての入力と出力は、言語のネイティブ表現可能な範囲内になります。言語がネイティブで任意の大きな整数を処理できる場合、ソリューションは任意の大きな入力と出力で動作する必要があります。 テストケース [7, 2] -> 14 [8, 1] -> 8 [6, 4, 8] -> 24 [8, 2, 1, 10] -> 40 [9, 6, 2, 1, 5] -> 90 [5, 5, 7, 1, 1] -> 35 [4, 13, 8, 8, 11, 1] -> …

20
ファロは配列をシャッフルする
A ファロshuffleが頻繁に「シャッフル」デッキにマジシャンで使用される技術です。ファロシャッフルを実行するには、まずデッキを2つの等しい半分にカットしてから、2つの半分をインターリーブします。例えば [1 2 3 4 5 6 7 8] シャローファロは [1 5 2 6 3 7 4 8] これは何回でも繰り返すことができます。興味深いことに、これを十分な回数繰り返すと、常に元の配列に戻ります。例えば: [1 2 3 4 5 6 7 8] [1 5 2 6 3 7 4 8] [1 3 5 7 2 4 6 8] [1 2 3 4 5 6 …
31 code-golf  permutations  card-games  code-golf  graphical-output  random  code-golf  image-processing  color  code-golf  primes  code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

30
ASCIIの三角形
あなたの仕事は、ASCII三角形を印刷するプログラムまたは関数を書くことです。次のようになります。 |\ | \ | \ ---- プログラムはn、制約付きの単一の数値入力を受け取ります0 <= n <= 1000。上記の三角形の値はでしたn=3。 ASCIIの三角形にはnバックスラッシュ(\)と垂直バー(|)、n+1行とダッシュ(-)があり、各行には最終的な行のほかに行番号(0から始まる、つまり最初の行は行0)と等しいスペースがあります。 。 例: 入力: 4 出力: |\ | \ | \ | \ ----- 入力: 0 出力: このテストケースでは、出力は空でなければなりません。空白なし。 入力: 1 出力: |\ -- 入力と出力は、私が指定したとおりでなければなりません。 これはcode-golfなので、できるだけ短いコードを目指してください!
30 code-golf  ascii-art  code-golf  rubiks-cube  code-golf  path-finding  maze  regular-expression  code-golf  math  rational-numbers  code-golf  kolmogorov-complexity  graphical-output  code-golf  tips  code-golf  string  permutations  code-golf  sorting  base-conversion  binary  code-golf  tips  basic  code-golf  number  number-theory  fibonacci  code-golf  date  code-golf  restricted-source  quine  file-system  code-golf  code-golf  math  code-golf  ascii-art  code-golf  math  primes  code-golf  code-golf  math  matrix  code-golf  string  math  logic  factorial  code-golf  palindrome  code-golf  quine  stateful  code-golf  interactive  code-golf  board-game  code-golf  math  arithmetic  code-golf  string  code-golf  math  matrix  code-golf  math  abstract-algebra  polynomials  code-golf  date  code-golf  string  array-manipulation  sorting  code-golf  game  code-golf  string  code-golf  ascii-art  decision-problem  code-golf  number  sequence  code-golf  code-golf  code-golf  sequence  fibonacci  code-golf  math  geometry  random  code-golf  code-golf  math  decision-problem  fractal  rational-numbers  code-golf  number  number-theory  code-golf  combinatorics  permutations  card-games  code-golf  math  sequence  array-manipulation  fibonacci  code-golf  sequence  decision-problem  graph-theory  code-golf  ascii-art  parsing  lisp  code-golf  string  math  natural-language  logic  code-golf  math  logic  code-golf  string  alphabet  code-golf  string  code-golf  string 

26
デジタル合計フィボナッチ
私たちは皆、フィボナッチ数列に精通しています: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765 ただし、代わりに、前の2つのエントリのデジタル合計をf(n) = f(n-1) + f(n-2)取得します。 シーケンスは引き続きで始まる必要があり0, 1、その後、違いはすぐに明らかになります。このリストには0のインデックスが付いていますが、1のインデックスも使用できます。 f(0) = 0 f(1) = 1 f(2) = 1 # 0 + 1 f(3) = 2 # 1 + 1 f(4) …

8
壊れやすいクイン
壊れやすいクイン 壊れやすいクインとは、評価時に単一文字を削除して各サブストリングを作成するというプロパティを満たすクインであり、エラーが発生します。 例えば。プログラムasdfがキネである場合、それが壊れやすいためには、次のプログラムでエラーが発生する必要があります。 sdf adf asf asd プログラム(およびそのすべての部分文字列)は完全に決定的であり、同じ言語である必要があります。無限ループに陥る(つまり、終了に失敗する)プログラムは、最終的にエラーを生成しなくても、このチャレンジの目的で「エラーを生成する」と見なされます。 通常のクイン制限を含む標準的な抜け穴が適用されます(たとえば、独自のソースコードを読み取れない)。 たとえば、print("foo")脆弱ではありません。これらのサブストリングはすべてエラーにする必要があります。 rint("foo") pint("foo") prnt("foo") prit("foo") prin("foo") print"foo") print(foo") print("oo") print("fo") print("fo") print("foo) print("foo" エラーにならないものは次のとおりです。 print("oo") print("fo") print("fo") だから壊れにくいわけではありません。 クインに関する重要な注意事項 コンセンサスによって、可能なすべての馬はこれを満たさなければなりません: プログラムの別の部分をエンコードするプログラムのセクションを識別することが可能でなければなりません。(「異なる」とは、2つの部分が異なる位置に表示されることを意味します。) さらに、クインは直接または間接的に自身のソースにアクセスしてはなりません。 例 JavaScriptのfunction#toStringは「独自のソースコードを読み取る」と考えているため、許可していません。ただし、私がそれを禁止しなかった場合、JavaScriptの壊れやすいクインを次に示します。 f=(n=b=`f=${f}`)=>(a=(n)==`f=${f}`,n=0,a)&(n!=b)?b:q テスター プログラムのソースコードを指定すると、エラーが発生する必要があるすべてのプログラムを生成するプログラムを次に示します。 let f = (s) => [...Array(s.length).keys()].map(i => s.slice(0, i) + s.slice(i + 1)).join("\n"); let …
30 code-golf  quine  code-golf  date  code-golf  sequence  code-golf  sorting  file-system  code-golf  code-golf  ascii-art  hexagonal-grid  code-golf  string  arithmetic  code-golf  code-golf  code-challenge  source-layout  code-golf  ascii-art  cellular-automata  code-golf  string  arithmetic  balanced-string  code-golf  number  primes  code-golf  ascii-art  hexagonal-grid  code-golf  string  code-golf  string  code-golf  sequence  code-golf  ascii-art  code-golf  conversion  hexadecimal  code-challenge  restricted-source  code-golf  math  grid  code-golf  string  ascii-art  code-golf  random  minesweeper  code-golf  ascii-art  kolmogorov-complexity  board-game  scrabble  code-golf  ascii-art  code-golf  math  number-theory  decision-problem  code-golf  string  code-golf  natural-language  code-golf  internet  stack-exchange-api  code-golf  code-golf  conversion  code-golf  string  code-golf  math  arithmetic  code-golf  string  whitespace  code-golf  graphical-output  internet  code-golf  string  code-golf  string  random  permutations  code-golf  string  code-golf  string 

12
それは素晴らしかった…ほとんど
数学のクラスで素数について学んだことがあるなら、おそらく、ある時点で、数が素数かどうかを判断しなければならなかったでしょう。まだ39をプライムと間違えているなど、まだ学習している最中に混乱している可能性があります。39は半素数、つまり、2つの素数の積であるため、心配する必要はありません。 同様に、我々は定義することができ、Kの生成物であるとしてプライム-almost K素数。たとえば、40は4番目のほぼ4つの素数です。40 = 5 * 2 * 2 * 2、4つの因子の積。 あなたの仕事は、2つの整数nとkを入力として受け入れ、n番目のk-ほぼ素数を返す/返すプログラム/関数を書くことです。これはコードゴルフであるため、バイト単位の最短プログラムが優先されます。 テストケース n, k => output n, 1 => the nth prime number 1, 1 => 2 3, 1 => 5 1, 2 => 4 3, 2 => 9 5, 3 => 27 雑多 そのような閉じた形式が存在する場合、単純な閉じた形式以外の方法で自分で素数を生成する必要があります。

30
私はあなたのために十分ではありませんか?
バックグラウンド: 現在のPerfect Numbersの課題は、数の要因を含む複雑な形式で出力するように求められるため、かなり欠陥があり複雑です。これは、チャレンジの純粋な決定問題の再投稿です。 チャレンジ 任意の標準入力形式で正の整数を指定すると、それが完全かどうかを区別します。 完全数とは、すべての適切な除数の合計に等しい数です(正の除数はそれ自体よりも小さい)。例えば、その約数であるため、完全数であるに合計、ながら、その約数(以来、完全数でない)までの合計、ではありません。6661,2,31、2、31,2,36661212121,2,3,4,61、2、3、4、61,2,3,4,6161616121212 テストケース: Imperfect: 1,12,13,18,20,1000,33550335 Perfect: 6,28,496,8128,33550336,8589869056 ルール メモリや時間の制約がある場合、プログラムはより大きなテストケースを完了する必要はありませんが、より多くのメモリ/時間を与えられれば理論的にはできるはずです。 出力は、許可された出力形式を使用して、2つの異なる一貫した値にすることができます。Perfect / Imperfectを表すものがすぐに分からない場合は、回答で必ず指定してください。

16
プリミティブピタゴラストリプル
(関連) A ピタゴラストリプルリストで(a, b, c)満たす式その2 + B 2 = C 2。 プリミティブピタゴラストリプル(PPT)を一度ここでありa、bおよびc全てである互いに素(すなわち、三つの要素の間の唯一の公約数です1)。たとえば、(3, 4, 5)直角三角形は有名な原始的なピタゴラストリプルです。 チャレンジ inputが与えられるとn、nth PPTを出力します。または、 inputを指定するnと、最初のnPPTが出力されます。 これらのPPTを順序付けて適切な順序のリストを作成し、どちらがnthであるかを判断する方法は複数あります。アルゴリズムがすべての可能な一意のPPTを生成できることを証明できる(非公式には問題ありません)限り、任意の順序を選択できます。たとえば、コードは両方(3,4,5)を出力すべきではありません。(4,3,5)これらは同じトリプルの複製なので、どちらか一方を出力してください。 同様に、使用しているコードを記述している限り、コードのインデックスが0か1かは問題ありません。 例 以下の例では、1つのインデックスを使用し、nth PPTを出力し、最小値c、最小値a、最小値の順に並べていbます。 n | output 1 | (3, 4, 5) 2 | (5, 12, 13) 5 | (20, 21, 29) 12| (48, 55, 73) ルール 入力と出力は、任意の便利な形式で指定できます。 提出する際には、エントリの順序、およびエントリのインデックスが0か1かを明記してください。 選択した順序で複製を作成することはできません。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 …

13
パスカルの列合計
ここのほとんどの人はパスカルの三角形に精通しています。連続する行で構成され、各要素は左上と右上の2つの隣接要素の合計です。最初の5行は次のとおりです(Generate Pascalの三角形から借用)。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 パスカルの三角形を取り、その上でいくつかの合計を実行します(笑)。指定されたinputに対してn、nPascalの三角形の最初の行の列和を出力します。たとえば、inputの5場合、出力は次のように形成されます 1 1 1 1 2 1 1 3 3 1 [+] 1 4 6 4 1 ---------------------- 1 1 5 4 9 4 5 1 1 したがって、出力はになります[1, 1, 5, 4, 9, 4, …

2
楕円曲線の追加
楕円曲線の追加 免責事項:これは、楕円曲線の豊富なトピックに関する正義を行いません。かなり簡素化されています。楕円曲線は最近、暗号化のコンテキストで多くのメディアの注目を集めたため、楕円曲線の「計算」が実際にどのように機能するかについて、いくつかの小さな洞察を提供したかったのです。 前書き 楕円曲線は(x,y)、フォームの平面内の点の集合ですy^2 = x^3+Ax+B。(さらに、4A^3+27B^2 ≠ 0厄介な特異点を避けるために。)これらの曲線はどのフィールドでも考慮することができます。実数のフィールドを使用すると、曲線を視覚化でき、次のようになります。 ソース これらの曲線の特別な点は、加算に類似した算術演算が組み込まれていることです。ポイントを追加および削除することができ、この操作は結合的および可換的(アーベル群)です。 追加はどのように機能しますか? 注:楕円曲線上の点の追加は直感的ではありません。この種類の追加は、特定の優れたプロパティがあるため、そのまま定義されています。奇妙ですが、動作します。 楕円曲線はグループを形成するため、0に相当する付加的な同一性があり0ます。つまり、任意のポイントに追加しても結果は変わりません。この付加的なアイデンティティは、無限の「ポイント」です。平面上のすべての線にはこの点が無限遠に含まれるため、追加しても違いはありません。 与えられた線が3点で曲線と交差すると仮定します0。これはである可能性があり、これら3点の合計は0です。それを念頭に置いて、この画像を見てください。 ソース さて、自然な質問は、何P+Qですか?まあ、if P+Q+R = 0、then P+Q = -R(またはとして書かれていますR')。どこ-Rですか?ここでR + (-R) = 0、はからX軸の反対側にあるRため、それらを通る線は、、、およびのみRと交差-Rし0ます。この画像の最初の部分でこれを見ることができます: ソース これらの画像で確認できるもう1つの点は、ポイントとそれ自体の合計が、線が曲線に接していることを意味していることです。 直線と楕円曲線の交点を見つける方法 2つの異なるポイントの場合 一般に2点を通る正確に1本の線がありP=(x0,y0), Q=(x1,y1)ます。それが垂直ではなく、2つのポイントが明確であると仮定すると、と書くことができますy = m*x+q。楕円曲線との交点を見つけたいとき、次のように書くことができます。 0 = x^3+Ax+B-y^2 = x^3+Ax+B-(m*x+q)^2 これは3次多項式です。これらは一般的に解くのはそれほど簡単ではありませんが、この多項式の2つのゼロを既に知っています。追加したい2点の2つのx座標x0, x1! このように我々の線形因子アウト因子(x-x0)と(x-x1)、そのルートである第三の線形因子が残されているx点の-座標R。(-R。あまりにも対称性のためであればその注意してくださいR = (x2,y2)、その後を-R = (x2,-y2)。-グループからであり、それはベクトルマイナスではありません。) P自身に1つのポイントを追加する場合 この場合、で曲線の正接を計算する必要がありますP=(x0,y0)。私たちは、直接書き込むことができますmとqの観点A,B,x0,y0: 3*x0^2 + …

28
超対数を計算する
これは簡単な課題です。 数を考えるとn >= 0、出力超対数(またはログ*、ログスターを、または対数を繰り返し、同等であるため、nこのような課題に対して負になることはありません。)のn。 これは、テトラションに対する2つの逆関数の1つです。もう1つはスーパールートです。これは関連する質問です。 例 Input Output 0 0 1 0 2 1 3 2 4 2 ... 15 2 16 3 ... 3814279 3 3814280 4 ルール 可能ですが、小数をサポートする必要はありません。 少なくともの入力をサポートする必要があり3814280 = ceiling(e^e^e)ます。 のような値をハードコーディングすることはできません3814280。(あなたのプログラムは理論的にはより大きな数値をサポートしなければなりません。)アルゴリズムを実装したいです。 最短のコードが優先されます。 関連OEIS
29 code-golf  math  code-golf  array-manipulation  sorting  code-golf  math  arithmetic  matrix  code-golf  string  kolmogorov-complexity  code-golf  string  code-golf  math  sequence  arithmetic  recursion  code-golf  math  ascii-art  sequence  code-golf  math  array-manipulation  code-golf  code-golf  kolmogorov-complexity  code-golf  string  code-golf  string  decision-problem  code-golf  array-manipulation  tips  javascript  json  code-golf  math  string  number  number-theory  code-golf  math  sequence  fibonacci  number  arithmetic  fastest-code  integer  code-golf  math  sequence  code-golf  string  file-system  tips  golfscript  code-golf  string  code-golf  string  natural-language  code-golf  string  file-system  code-golf  math  array-manipulation  code-challenge  image-processing  compression  code-golf  math  number  sequence  code-golf  math  combinatorics  regular-expression  code-golf  sequence  pi  code-golf  ascii-art  code-golf  string  array-manipulation  sorting  code-golf  string  graph-theory  code-golf  string  code-golf  string  ascii-art  code-challenge  compression  code-golf  code-golf  math  sequence  number-theory  code-golf  maze  graph-theory  code-golf  math  sequence 

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