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

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

17
共素数と数pi
前書き 数論は、予想外のつながりという形で驚異に満ちています。そのうちの1つです。 二つの整数は互いに素彼らは数を考えると1より一般的な他に何の要因を持っていない場合はN、1からのすべての整数を考えるN。このような整数をランダムに 2つ描画します(すべての整数は、各描画で同じ確率で選択されます。描画は独立しており、置換されます)。してみましょうpは選択された2つの整数が互いに素である確率を表します。次いで、pは 6 /傾向にあるπ 2 ≈0.6079 ...としてNが無限大になる傾向があります。 チャレンジ このチャレンジの目的は、pをNの関数として計算することです。 例として、N = 4を考えます。整数1,2,3,4から得られる16の可能なペアがあります。これらのペアの11は、互いに素、つまり(1,1)、(1,2)、(1,3)、(1,4)、(2,1)、(3,1)、(4,1 )、(2,3)、(3,2)、(3,4)、(4,3)。したがって、N = 4の場合、pは11/16 = 0.6875です。 pの正確な値は、少なくとも4つの小数で計算する必要があります。これは、計算が決定論的でなければならないことを意味します(モンテカルロとは対照的に)。ただし、上記のようにすべてのペアを直接列挙する必要はありません。任意の方法を使用できます。 関数の引数またはstdin / stdoutを使用できます。出力を表示する場合、末尾のゼロは省略できます。したがって、たとえば0.6300として表示できます0.63。分数ではなく、10進数として表示する必要があります(文字列の表示は63/100許可されていません)。 勝利基準は最小バイトです。組み込み関数の使用に関する制限はありません。 テストケース 入力/出力(上記のように、小数点以下4桁のみが必須です): 1 / 1.000000000000000 2 / 0.750000000000000 4 / 0.687500000000000 10 / 0.630000000000000 100 / 0.608700000000000 1000 / 0.608383000000000

25
メビウス関数
メビウス関数 メビウス関数は重要な数論関数です。 提出は正の整数nを受け入れ、で評価されたメビウス関数の値を返す必要がありますn。 定義 メビウス関数μ(n)は次のように定義されます。 | 1 if n is squarefree and has an even number of distinct prime factors μ(n) = | -1 if n is squarefree and has an odd number of distinct prime factors | 0 otherwise nnの素因数分解の指数がすべて厳密に2よりも小さい場合、平方自由と呼ばれます。(または、2つの除算の累乗に対する素数はありませんn)。 テストケース ここで、μの最初の50個の値を確認できます。 ウィキペディアのパブリックドメイン画像 メビウス関数は、OEISのシーケンス番号A008683です。 これらは最初の77の値です: 1, -1, -1, 0, …

23
素因数を見つける
このタスクでは、数値の素因数を計算するプログラムを作成する必要があります。入力は自然数1 <n <2 ^ 32です。出力は、次の形式の数値の素因数のリストです。指数は1の場合、省略する必要があります。素数のみを出力します。(入力が131784であると仮定): 131784 = 2 ^ 3 * 3 * 17 ^ 2 * 19 同じ量の空白を使用する必要はありません。空白は適切な場所に挿入できます。プログラムは、入力があれば10分以内に完了するはずです。最短のキャラクター数のプログラムが勝ちます。

6
ガウス整数の因数分解
ガウス整数は、その実部と虚部の整数である複素数です。 ガウス整数は、通常の整数と同様に、ガウス素数の積として一意の方法で表すことができます。ここでの課題は、指定されたガウス整数の主な構成要素を計算することです。 入力:0ではなく、単位ではないガウス整数(つまり、1、-1、i、および-iは入力として指定できません)。賢明な形式を使用してください。例: 4-5i -5 * j + 4 (4、-5) 出力:素数(つまり、2つの非単位ガウス整数の積として表現できないもの)で、その積が入力数に等しいガウス整数のリスト。出力リストのすべての数値は、1、-1、i、または-iではなく、自明でないものでなければなりません。適切な出力形式を使用できます。入力形式と同じである必要はありません。 出力リストに複数の要素がある場合、いくつかの正しい出力が可能です。たとえば、入力9の場合、出力は[3、3]または[-3、-3]または[3i、-3i]または[-3i、3i]になります。 テストケース(この表から取得、テストケースごとに2行) 2 1+i, 1-i 3i 3i 256 1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i 7+9i 1+i,2−i,3+2i 27+15i 1+i,3,7−2i 6840+585i -1-2i, 1+4i, 2+i, 3, 3, 6+i, 6+i ガウス整数を因数分解するための組み込み関数は許可されていません。ただし、組み込み関数による通常の整数の因数分解は許可されています。

13
公正な王のための8つのコイン
これは別のパズルの「カウンターパート」です。Puzzling.SEの公正な王のための8つのコインです。 上記のパズルの背景を読むことができます。このパズルの詳細は次のとおりです。 異なる値の8種類のコインのセットが作成されます。王は、0からNまでの任意の数の価格が8コイン以下の組み合わせで無料で支払われるように、最大​​Nを見つけることを望んでいます。 たとえば、(Glorfindelの回答から引用)。値1、2、5、13、34、89、233、610のコインのセットが与えられた場合、プログラムは1596を出力する必要があります。与えられたリストから8個以上の数字(数字は繰り返される可能性があります)、1597はそのようには表現できません。 数学的には、入力が8つの正の整数で構成される集合Sである場合、望ましい出力Nは、0からNまでの任意の数nに対して、x1、x2、x3、...、x8が存在することを満たします。 バツ1+ x2+ 。。。+ x8= nそしてバツ1、x2、。。。、x8∈ { 0 } ∪ Sバツ1+バツ2+。。。+バツ8=nそしてバツ1、バツ2、。。。、バツ8∈{0}∪Sx_1 + x_2 + ... + x_8 = n \quad\textrm{and}\quad x_1, x_2, ...,x_8 \in \{0\} \cup S あなたの目標は、入力として8つの数字を受け取り、上記のように最大Nを出力するプログラム、関数、またはスニペットを作成することです。 ルール: 柔軟なI / Oが許可されているため、プログラムは最適な形式で入力を取得できます。入力番号は、プログラムに最適な方法でソートされていると想定できます。 プログラムが入力順序に依存している場合は、回答にそれを明記してください 入力は、8つの異なる正の整数(ゼロなし)のセットです。出力は、1つの非負整数です。 入力セットに1がない場合、0〜0の任意の数が要件を満たすため、プログラムは0を出力する必要があります。 無効な入力(セットにゼロ、負の数、または重複する数が含まれる)の場合、プログラムは何でもできます。 標準的な抜け穴は禁止されています。 プログラムは、最新のコンピューターで数分以内に実行されるはずです。 テストケース(主にPuzzlingのリンクされた質問の下の回答から取得): [1, 2, 3, 4, 5, 6, 7, …

23
アスキーアートオクタゴン
入力整数を指定するとn > 1、n文字で構成される辺の長さのASCIIアートオクタゴンを出力します。以下の例を参照してください。 n=2 ## # # # # ## n=3 ### # # # # # # # # # # ### n=4 #### # # # # # # # # # # # # # # # # #### n=5 ##### # # # # # # …
22 code-golf  ascii-art  code-golf  geometry  code-golf  balanced-string  code-golf  cops-and-robbers  code-challenge  cops-and-robbers  code-golf  code-golf  random  cryptography  code-golf  array-manipulation  number  code-challenge  integer  code-golf  math  integer  code-golf  math  math  parsing  image-processing  test-battery  math  number  combinatorics  fastest-code  code-golf  code-golf  math  number-theory  rational-numbers  polynomials  code-golf  math  geometry  code-golf  code-golf  number-theory  primes  factoring  code-golf  restricted-source  code-golf  string  decision-problem  counting  code-golf  math  sequence  fibonacci  code-golf  array-manipulation  counting  code-golf  array-manipulation  number-theory  code-golf  array-manipulation  code-golf  random  code-golf  string  hexadecimal  code-golf  string  code-challenge  sorting  code-golf  number  floating-point  code-golf  sorting  code-golf  decision-problem  fibonacci  code-golf  number  combinatorics  code-golf  string  code-golf  math  code-golf  electrical-engineering  code-golf  javascript  code-golf  base-conversion  code-golf  array-manipulation  matrix  binary-matrix  code-golf  kolmogorov-complexity  python  perl  ruby  code-golf  number  code-golf  optimization  integer-partitions  code-golf  string  code-golf  ascii-art 

11
数字の製品シーケンス
ブルームズバーグ大学の数学者、ポール・ルーミスによって発見された興味深いシーケンスは次のとおりです。このシーケンスに関する彼のページから: 定義する f(n) = f(n-1) + (the product of the nonzero digits of f(n-1)) f(0) = xと、xベース10に書き込まれた任意の正の整数、など。 したがって、で始まるf(0)=1次のシーケンスが得られます 1, 2, 4, 8, 16, 22, 26, 38, 62, 74, 102, 104, ... これまでのところ、標準です。興味深い特性は、他の整数を開始点として使用すると有効になり、最終的にシーケンスは上記のx=1シーケンスに沿ってポイントに収束します。たとえば、x=3yields で始まる 3, 6, 12, 14, 18, 26, 38, 62, 74, 102, ... 以下にいくつかのシーケンスを示します。それぞれは、到達するまで表示されます102。 5, 10, 11, 12, 14, …

19
これは連続した素数/定数の指数ですか?
少し前に、27000の素因数分解を見ました。 27000 = 2 3 ×3 3 ×5 3 それについて2つの特別なことがあります: 連続素数:素数は連続しています:2は1番目の素数、3は2番目の素数、5は3番目の素数です。 constant-exponent:指数はすべての素数で同じです(常に3) 数学的に表現された: 整数xは厳密に正の整数が存在する場合に連続プライム/定数、指数の数であるN、K、mはその結果、X = P nはM × P N +1 M ×...× P N + k個のM、Pをjはj番目の素数 あなたの仕事は、正の整数がこれらの条件を満たすかどうかをテストすることです。 入力: 妥当な形式の正の整数> 1。 出力: 入力が連続した素数/定数の指数であるかどうかを示す、少なくとも1つは一定でなければならない2つの値の1つ。 エッジケース: 素数pの因数分解はp 1であるため、素数は真実です 以下のように書くことができる他の数のP M pが素数でもtruthyあります。 ルール: 標準の抜け穴が適用されます。 整数オーバーフローの心配はありませんが、255までの数字が機能する必要があります。 バイト単位の最短コードが優先されます。 テストケース: 真実: 2 3 4 5 6 …

15
いくつかのドミノを倒す!
インスピレーションを与えてくれたこの質問に感謝します この挑戦で、私たちはのストリングとしてドミノのラインを表すでしょう|、/そして\。入力としてドミノの文字列が与えられ、落ち着いたときにどのように見えるかを決定する必要があります。ドミノが倒れる方法のルールは次のとおりです |倒れたドミノの左にある立っているドミノは、\同様に左の倒れたドミノになります。 |倒れたドミノの右側にある立っているドミノも、/同様に倒れた右のドミノになります。 倒れたドミノが左倒れ\た/ドミノと右倒れたドミノの間にある場合、立ったままになります。 これらの規則は、配置が変更されなくなるまで繰り返し適用されます。 単一の入力がその結論に到達する方法の例を次に示します |||||||\/|||||||\||\|||/||||||\||||| ||||||\\//|||||\\|\\|||//||||\\||||| |||||\\\///|||\\\\\\|||///||\\\||||| ||||\\\\////|\\\\\\\|||////\\\\||||| |||\\\\\////|\\\\\\\|||////\\\\||||| ||\\\\\\////|\\\\\\\|||////\\\\||||| |\\\\\\\////|\\\\\\\|||////\\\\||||| \\\\\\\\////|\\\\\\\|||////\\\\||||| あなたの仕事は、入力の最終結果を見つけて出力するコードを書くことです。入力は常に有効で、少なくとも2文字が含まれていると想定できます。 これはコードゴルフであるため、回答はバイト単位で記録され、バイト数は少ない方が良いでしょう。 テストケース |||/|||| -> |||///// |||\|||| -> \\\\|||| |/||||\| -> |///\\\| ||/|||\| -> ||//|\\| ||\|||/| -> \\\|||//

10
テンキーに優しい番号を生成する
キーボードフレンドリー番号の生成に触発された。 バックグラウンド 多くの数字パッドのレイアウトは次のとおりです。 789 456 123 0 数値の近傍を、表示されているテンキー上のそれに隣接するセルのセットとして定義します。たとえば、2の近傍は{1,5,3,0,2}0の近傍です{1,2,0}。テストケースの上に、各番号の近傍のリストがあります。 テンキーのフレンドリ番号を正の整数として定義します。先頭にゼロを付けずに10進数で記述すると、最初の数字を除く各数字は前の数字の近くにあります。 例えば、 7856は8が7の近傍にあり、5は8のネイバーフッドにあり、6は5の近傍にあるため、テンキーに優しい番号です。 2は1の近傍にあり、0は2の近傍にあり、1は0の近傍にあるため、1201はテンキーに優しい数字です。 82でない 2は、8の近傍にないためテンキー優しい数。 802はない 0が8(近隣ラップアラウンドしていない)の近傍ではないので、テンキー優しい番号。 関連OEISシーケンス。この関連シーケンスは、およびの代わりに0隣接するものとしてカウントされるため、異なることに注意してください。712 チャレンジ 正の整数nを指定すると、n-thまたは最初のnテンキーのフレンドリ番号を返します。最初のテンキーは1です。0から始まるテンキーのフレンドリ番号は1です。 近所 各桁の近傍は次のとおりです。 0:{0,1,2} 1:{0,1,2,4} 2:{0,1,2,3,5} 3:{2,3,6} 4:{1,4,5,7} 5:{2,4,5,6,8} 6:{3,5,6,9} 7:{4,7,8} 8:{5,7,8,9} 9:{6,8,9} テストケース/シーケンス これらは最初の100用語です [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 20, 21, 22, 23, …

28
最大の素数指数
整数を指定するとn >= 2、その素因数分解で最大の指数を出力します。これは、OEISシーケンスA051903です。 例 させてくださいn = 144。その素因数分解は2^4 * 3^2です。最大の指数は4です。 テストケース 2 -> 1 3 -> 1 4 -> 2 5 -> 1 6 -> 1 7 -> 1 8 -> 3 9 -> 2 10 -> 1 11 -> 1 12 -> 2 144 -> 4 200 -> 3 500 …

22
モジュラ乗法逆
あなたの仕事は、2つの整数を与え、モジュロbのモジュラ乗法逆関数が存在する場合、それaをb計算することです。 aモジュロのモジュラー逆数bは、cそのような数ですac ≡ 1 (mod b)。この番号はb、aとの任意のペアに対して一意のモジュロですb。それが唯一の最大公約数場合が存在aしてbいます1。 トピックに関する詳細情報が必要な場合は、モジュラー乗法的逆関数のWikipediaページを参照してください。 入出力 入力は、2つの整数または2つの整数のリストとして与えられます。プログラムは、単一の数、区間内にあるモジュラー乗法逆数0 < c < b、または逆数がないことを示す値のいずれかを出力する必要があります。値は、範囲内の数値を除く任意の値にすることができ(0,b)、例外でもあります。ただし、値は逆行列がない場合と同じである必要があります。 0 < a < b 想定できる ルール プログラムはある時点で終了し、各テストケースを60秒未満で解決する必要があります 標準的な抜け穴が適用されます テストケース 以下のテストケースは次の形式で提供されます。 a, b -> output 1, 2 -> 1 3, 6 -> Does not exist 7, 87 -> 25 25, 87 -> 7 2, 91 -> 46 …

20
それはスーパープライムですか?
バックグラウンド スーパープライムは、インデックスがすべて素数のリストでも素数である素数です。シーケンスは次のようになります。 3、5、11、17、31、41、59、67、83、109、127、157、179、191、... これは、OEISのシーケンスA006450です。 チャレンジ 正の整数を指定して、それがスーパープライムかどうかを判断します。 テストケース 2:偽 3:本当 4:偽 5:true 7:偽 11:true 13:偽 17:真 709:true 851:偽 991:真 得点 これはcode-golfであるため、各言語の最短の回答が優先されます。

12
縮退を逆にして追加する
イントロ リバースと追加は、見た目と同じくらい簡単nで、逆の順序で数字に追加します。(例:234 + 432 = 666)。 このプロセスを繰り返し適用すると、いくつかの数字は最終的に素数にヒットし、一部は素数に到達しません。 例 私は現在持っています 11431担当者 11431 is not prime 11431 + 13411 = 24842 which is not prime 24842 + 24842 = 49684 which is not prime 49684 + 48694 = 98378 which is not prime 98378 + 87389 = 185767 which is prime! この数は素数に当たります …

12
分割して分割して征服する
時々、目の前に出てくる数字をなんとなくしようとするとき¹、しばらくして、思ったより簡単だと気づきました。テイク2156例えば:最終的には、両方のことを私に起こる21と56の倍数である7ので、確かに、とは2156 = 21 x 100 + 56またの倍数です7。 あなたの仕事は、この種の偶然の一致により因数分解しやすい数字を識別するコードを書くことです。 より正確に: n入力として正の整数を取り、2つに切り分けてそれぞれが2の倍数である2つの正の整数を生成できる除数d(より大きい1)が存在する場合、真理値を返すプログラムまたは関数を記述します。そうでない場合は、偽の値を返します。nd 「2つにチョップ」とは、あなたが考えることを意味します。nある時点で前半と後半に分割され、他の2つの10進整数を生成する通常の10進表現です。2番目の整数の先頭にゼロが付いていても問題ありません(ただし、正の整数である必要があるため、分割1230して有効123で0はないことに注意してください)。 真実の値と偽の値は入力に依存します。たとえば、選択した言語でゼロ以外の整数が真である場合、除数dまたはn(またはnそのこと自体)。 たとえば、セット内の少なくとも2桁の偶数 {2, 4, 6, 8}があると、真の値が得られます。最初の偶数の後に分割するだけです。また、たとえば、n1桁の数値と同様に、素数は偽の値を生成します。 素因数を考慮するだけで十分です。 d。 入力が有効であると仮定できます(つまり、正の整数)。 これはコードゴルフですであるため、バイト単位の最短コードが優先されます。しかし、すべての言語のソリューションは歓迎されているため、全体の最短コードだけでなく、各言語の最短コードを目指して努力することができます。 テストケース (真実または偽の値のみを出力する必要があります。以下の注釈は説明のためのものです。)真実の値を生成する入力は次のとおりです。 39 (3 divides both 3 and 9) 64 (2 divides both 6 and 4) 497 (7 divides both 49 and 7) 990 (splitting into 99 and 0 …

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