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

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

6
数値を「まったく価値のないシステム」に変換する
数値の長さmのn番目の値(右から左にカウント)の最大桁が常にm-n + 1に等しい数値のシステムを作成します。例を挙げると、このシステムで表現可能な最大5桁の数値12345と書かれています。特定の場所で使用できる桁数が制限されていることを除けば、他のすべての増分は標準です。つまり、桁がその桁制限を超える場合、次の桁に1を追加します。 このシステムでカウントがどのように表示されるかを次に示します。 1; 10; 11; 12; 100; 101; 102; 103; 110; 111; 112; 113; 120; 121; 122; 123; 1000; 1001 ... あなたの仕事は、標準の10進数を取り、それを私の採番システムに変換する関数を書くことです。 短いコードが望ましいです。ボンネ・チャンス! ** 9桁以降の数字が必要な場合(必要です)、文字を使用するか、リストの要素として2桁の数字を返すかを選択できます。 テストケース 10 -> 111 20 -> 1003 30 -> 1023 50 -> 1123 100 -> 10035 23116 -> 1234567 21977356 -> 123456789A 最後のケースは、実装方法によっては実行が非常に遅くなる場合があります。時間がかかりすぎたり、メモリを使いすぎる場合は、実行する必要はありません。ただし、迅速に実行し、メモリをほとんど使用しない方法が存在することに注意してください。

2
繰り返しを解釈する!
この課題は、繰り返しに関する2チャレンジシリーズの最初の課題です。2つ目はすぐにアップします。 繰り返し(私がちょうど作っ何か)と呼ばれる言語では、無限の文字列が構成さ12345678901234567890...と、1234567890永遠に繰り返すことを。 数値を出力するには、次の構文を使用できます。 +-*/:これにより、繰り返し数字の文字列に演算子が挿入されます。 例: +-> 1+2= 3(間にandを+挿入)+12 +*-> 1+2*3= 1+6= 7(2つの演算子が現在使用されていることを除いて、上記と同じです) /-> 1/2= 0(繰り返しは整数除算を使用) //-> 1/2/3= 0/3= 0(繰り返しは複数の減算と除算で「左の関連付け」を使用します) 各演算子は、c' がない限り、左に1桁の数字が挿入されるように挿入されます(以下を参照)。 c:文字列の次の数字と連結します。 例: c+-> 12+3= 15(をc「継続」1し、次の数字と連結して2、を形成します12) +c-> 1+23=24 ccc -> 1234 ():数字を処理するための括弧。 例: (c+)*-> (12+3)*4= 15*4= 60(繰り返しは操作の順序を使用します) (c+)/c-> (12+3)/45= 15/45=0 (cc+c)/-> (123+45)/6= 168/6=28 s:番号をスキップします(無限の文字列から番号を削除します)。 s+-> 2+3= 5(sスキップ1) csc- > 124(第一cconcats …

3
すべてのアームストロング番号
アームストロング数(別名、完全な数、または自己陶酔的な数)は、そのn桁の累乗の合計に等しいn数です。ここで、は数字の桁数です。 たとえば、153持っている3数字を、および153 = 1^3 + 5^3 + 3^3ので、153アームストロングの番号です。 たとえば、8208持っている4数字を、および8208 = 8^4 + 2^4 + 0^4 + 8^4ので、8208アームストロングの番号です。 2013年11月14日、数値がアームストロングの数値であるかどうかをテストしました。 ここで、すべてのアームストロング番号をリストしたいと思います。88アームストロングの数字は正確にあります: 1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474 54748 92727 93084 548834 1741725 4210818 9800817 9926315 24678050 24678051 88593477 146511208 472335975 534494836 912985153 …

6
最長算術部分列
整数の空でない有限シーケンスを指定すると、最大長の算術サブシーケンスを返します。 同じ最大長の倍数がある場合、それらのいずれかを返すことができます。 定義: 演算シーケンスは、シーケンスであるa(1),a(2),a(3),a(4),...定数が存在するように、cそのようなa(m+1)-a(m) = cすべてのためにm。つまり、次の2つの用語の差は一定です。 シーケンスを考えるとサブはシーケンスであると、すべてのために。つまり、元のシーケンスを取り、必要な数のエントリを削除します。b(1),b(2),b(3),b(4),...b(s(1)),b(s(2)),b(s(3)),b(s(4)),...1 <= s(1)s(m) < s(m+1)m 例 Input Output [4,1,2,3,6,5] [1,3,5] or [1,2,3] [5,4,2,-1,-2,-4,-4] [5,2,-1,-4] [1,2,1,3,1,4,1,5,1] [1,1,1,1,1] or [1,2,3,4,5] [1] [1] より長いテストケース: Length: 25 Input: [-9,0,5,15,-1,4,17,-3,20,13,15,9,0,-6,11,17,17,9,26,11,5,11,3,16,25] Output: [15,13,11,9] or [17,13,9,5] Length: 50 Input: [35,7,37,6,6,33,17,33,38,30,38,12,37,49,44,5,19,19,35,30,40,19,11,5,39,11,20,28,12,33,25,8,40,6,15,12,27,5,21,6,6,40,15,31,49,22,35,38,22,33] Output: [6,6,6,6,6] or [39,33,27,21,15] Length: 100 Input: [6,69,5,8,53,10,82,82,73,15,66,52,98,65,81,46,44,83,9,14,18,40,84,81,7,40,53,42,66,63,30,44,2,99,17,11,38,20,49,34,96,93,6,74,27,43,55,95,42,99,31,71,67,54,70,67,18,13,100,18,4,57,89,67,20,37,47,99,16,86,65,38,20,43,49,13,59,23,39,59,26,30,62,27,83,99,74,35,59,11,91,88,82,27,60,3,43,32,17,18] Output: [6,18,30,42,54] or …

8
ファイの三角形を描く
明確化:基本的に、これを作成する必要があります オイラーのtotient関数の名前はphiです。 phi(8)を計算してみましょう まず、0以下を含まない、8以下のすべての数字を後方にリストします 8 7 6 5 4 3 2 1 次に、8と因子を共有しない数字を見つけ(1はカウントしません)、その場所にa #を配置します。 8 # 6 # 4 # 2 # 数字を削除します。 # # # # - これを行いますが、出力を三角形にまとめます 9 88 777 6666 55555 444444 3333333 22222222 111111111 --------- 123456789 # 非因子共有番号を出力する 9 8# 7## 6#66 5#### 4#4#4# 3##3##3 2#2#2#2# …

23
正の除数を見つけてください!
定義 ゼロより大きい場合、数値は正です。 数(A)は、別の数(の除数であるB場合)Aに分割することができBない残り。 たとえば、余りなしで除算できるため2、の除数です。626 ゴール あなたの仕事は、正の数をとるプログラム/関数を作成し、その除数をすべて見つけることです。 制限 prime または factorizationに関連する組み込みは使用できません。 アルゴリズムの複雑さはO(sqrt(n))を超えてはなりません。 自由 出力リストに重複が含まれている場合があります。 出力リストをソートする必要はありません。 得点 これはcode-golfです。バイト単位の最短ソリューションが勝ちです。 テストケース input output 1 1 2 1,2 6 1,2,3,6 9 1,3,9

1
ジェイソンが彼のJSONをフォーマットするのを手伝ってください
Jasonには大きなJSONがありますが、判読できないため、彼はそれをきれいにする必要があります。 フォーマット仕様 JSONには4つの異なるタイプがあります。 数字; ただ0-9 ストリング; で"エスケープされた二重引用符付き文字列\ 配列; で区切られ[]、アイテムはで区切られ,、アイテムはこれらのタイプのいずれかになります オブジェクト; で区切られ{}、formatはkey: valuekeyが文字列で、valueはこれらのタイプのいずれかです 間隔 配列には、項目間のコンマの後にちょうど1つのスペースが必要です。 オブジェクトには、キーと値の間にスペースが1つだけあるはずです。 : くぼみ 各ネストレベルは、以前よりも2インデントされます 各オブジェクトのキーと値のペアは、常に独自の行にあります。オブジェクトはインデントされます 配列に別の配列またはオブジェクトが含まれる場合、配列は複数行にわたってインデントされます。それ以外の場合、配列は1行のままです ルール このタスクを単純化するビルトインは許可されていません。 いつものように、標準的な抜け穴は許可されていません 例 [1,2,3] [1, 2, 3] {"a":1,"b":4} { "a": 1, "b": 4 } "foo" "foo" 56 56 {"a":[{"b":1,"c":"foo"},{"d":[2,3,4,1], "a":["abc","def",{"d":{"f":[3,4]}}]}]} { "a": [ { "b": 1, "c": "foo" }, …
11 code-golf  string  json  code-golf  number  code-golf  image-processing  code-golf  string  code-golf  number  sequence  arithmetic  number-theory  code-golf  string  code-golf  string  counting  code-golf  ascii-art  code-golf  math  code-golf  tips  code-golf  string  code-golf  grid  graph-theory  code-golf  parsing  interpreter  brainfuck  code-golf  math  arithmetic  number-theory  programming-puzzle  c#  code-golf  dominoes  code-golf  tips  code-golf  string  grid  crossword  code-golf  string  code-golf  kolmogorov-complexity  code-golf  number  sequence  code-golf  string  math  number  number-theory  primes  fastest-code  code-golf  number  code-golf  string  code-golf  ascii-art  number  kolmogorov-complexity  code-golf  string  grid 

5
ベズーのアイデンティティ
ベズーのアイデンティティの紹介 2つの整数A、BのGCDは、残りを残さずにそれらを分割する最大の正の整数です。ユークリッドの性質により、各整数Nは次のように別の整数Mで除算できます。 次のように書けるようなペアu、vが存在します。 これらのペアは無限にあるため、特別なペアを見つけたいと思います。実際には、(A、Bがゼロではない)そのようなペアが2つあります。 例えば チャレンジ この課題の目的は、上記の制約を満たし、uが正でなければならない係数(u、v)のペアを見つけることです。これにより、出力が一意のペアに絞り込まれます。 入力 入力が正であると仮定することもできます。また、Aは常にBよりも大きくなります(A> B)。 出力 プログラム/関数の出力は、チャレンジで指定された(順序付けられた)ペアでなければなりません。 ルール 組み込みの拡張ユークリッドアルゴリズムを使用してはなりません(たとえば、Mathematicaでは使用は許可されていますGCDが、許可されていませんExtendedGCD-とにかく5,3で失敗します)。 答えは、完全なプログラム(STDINなどを介して入力を取得し、STDOUTを介して出力する)または関数(ペアを返す)です。 ペア(u、v)の横には出力がありません。末尾の改行またはスペースは許可されます。(大括弧またはコンマで構いません) これはコードゴルフであり、すべての標準的な抜け穴は禁止されており、バイト数が最も少ないプログラムが勝ちます。 例 (A, B) -> (u, v) (42, 12) -> (1, -3) (4096, 84) -> (4, -195) (5, 3) -> (2, -3) (1155, 405) -> (20, -57) (37377, 5204) -> (4365, -31351) (7792, 7743) …

8
ユニティのプリミティブルーツ
ましょうz複素数になります。zは、特定の正の整数および任意の正の整数の場合、単一性の n番目のプリミティブルートです。n k < n チャレンジ n入力として正の整数を指定すると、ユニティのn番目のプリミティブルートをすべて出力する完全なプログラムまたは関数を記述します。それらを極形式(e^θiまたはe^iθ、引数は小数点以下2桁以上の小数でなければなりません)または長方形形式(a + biまたは同様の形式、実数部と虚数部も小数である必要があります)で出力でき、言語のリストに出力できます/ array形式、またはスペースまたは改行で区切られた数字の文字列として。ユニティのn番目のルートまたはユニティのn番目のプリミティブルートを計算するビルトインは許可されていません。 これはcode-golfなので、バイト単位の最短コードが優先されます。 サンプルの入力と出力 6 -> e^1.05i, e^-1.05i # polar form 3 -> e^2.094395i, e^-2.094395i # any number of decimal places is OK as long as there are more than 2 8 -> 0.707 + 0.707i, 0.707 - 0.707i, -0.707 + 0.707i, …

1
数の計算、除数版
数学に関するこの質問に触発されました。 数nの素因数分解をP(n)= 2 a x 3 b x 5 c x ...として表すとします。 (乗算記号としてxを使用します。)n の約数は、D(n)=(a + 1)x(b + 1)x(c + 1)...として表すことができます。 したがって、2nの約数はD(2n)=(a + 2)x(b + 1)x(c + 1)...で あり、3nの約数はD(3n )=(a + 1)x(b + 2)x(c + 1)...など 。 チャレンジ: 特定の除数入力を指定して、これらのプロパティを使用してnを計算するプログラムまたは関数を作成します。 入力: 整数のセット、それらをw、x、y、zと呼び、次のすべての定義を使用します。 すべての入力が1より大きい- w, x, y, z > 1 xとzは異なる-x<>z XとZは -プライムありP(x)=x、D(x)=2かつP(z)=z、D(z)=2 …

3
清らかな世界の準備
Pristine Worldのプログラミングに大きな影響を受けています。また、この課題に密接に関連しています。 素数の素数を、それ自体が素数であるが、基数Nの10桁の連続した部分文字列を削除すると素数ではなくなる数として定義しましょう0 < N < digits in number。 たとえば、409は素数であるため、409は元の素数ですが、1桁の部分文字列を削除した結果の数値はすべて素数ではありません。 40 49 09 = 9 長さ2の部分文字列を削除した結果の数値はすべて素数ではありません。 4 9 一方、素数439は元のままではありません。異なる部分文字列を削除すると、次の結果になります。 43 49 39 4 9 49、39、4、および9はすべて非素数ですが、43 は素数です。したがって、439は元のままではありません。 2、3、5、および7は、部分文字列を削除できないため、ごく単純です。 チャレンジ あなたの課題は、正の整数Nを取り込んでN番目の自然素数を出力するプログラムまたは関数を作成することです。最新のPCでは、最大50の入力に対してコードは1分未満で終了するはずです。 バイト単位の最短コードが優先されます。 参考として、ここに最初の20の素朴な素数を示します。 N Pristine prime 1 2 2 3 3 5 4 7 5 11 6 19 7 41 8 61 …

6
rとnが与えられた場合、xの最初の数字を最後に移動するとx / r = yになるxの最初のn個の数字を見つける
目的 入力が与えられ、最初の自然数rをn見つけて、最初の数字を最後の位置に回転させるとが得られます。nxx/r あなたはそれ2 <= r <= 9と仮定するかもしれません1 <= n <= 65535。 stdinまたはコマンドライン引数から入力を受け取るプログラムを作成できます。または、パラメータを取りr、nパラメータとして使用する関数を作成できます。ただし、出力は標準出力にする必要があります。出力はの値ごとに1行であるべきであり、増加する順番にxフォーマットされx/r=yていxます。 ソリューションは、妥当なデスクトップコンピューターで1分以内にすべての有効なケースを処理できる必要があります。 テストケース 入力:4 5 出力: 102564/4=25641 205128/4=51282 307692/4=76923 410256/4=102564 512820/4=128205 入力:5 1 出力:714285/5=142857 これはコードゴルフであるため、最小バイトが勝ちます。勝利の答えは、今から4週間後に受け入れられます(2014-09-19)。 この質問のクレジットは同僚に送られ、同僚がこの質問をここに投稿することができました:)

1
角型の二次剰余検定のためのベースの最小カバー
チャレンジ 与えられた非負整数nが完全な正方形であるかどうかを決定的に決定するために、テーブルルックアップで二次剰余のセットをテストできる基底の最小カバー(モジュラスなど)を見つけます。基底はすべて、nの最大値の平方根以下でなければなりません。 与えられたカテゴリnの最小のベースセットを持つ答えが課題に勝ちます。(これは、複数の勝者が存在する可能性があることを意味します。)nのカテゴリは次のとおりです。 Category Maximum allowed n Maximum allowed modulus/base ------------- -------------------- ---------------------------- 8-bit values 255 15 16-bit values 65535 255 32-bit values 4294967295 65535 64-bit values 18446744073709551615 4294967295 等しいカーディナリティを持つ2つのセットとの同点の場合、同点は、シーケンスの早い段階で非正方形を検出する能力の高いセットに行きます。 完全なカバーが見つからない場合(32ビットおよび64ビットのカテゴリに該当する可能性が高い)、勝者は、統計的にまたは証明可能に、非正方形の最も高い割合を(誤ってせずに)除外する一連のベースになります正方形を非正方形として報告する)。不完全なカバーについては、以下をご覧ください。 バックグラウンド 多くの数論的応用では、ある数nが完全な正方形(0、1、4、9、16、25、36、49、64、81、100など)であるかどうかが問題になります。かどうかを試験する一つの方法は、N正方形であるが、丸みを帯びたダウンの平方根かどうか、あるフロア(√N)²= N、かどうかテストすることであるN乗場合、バック与えるN。たとえば、floor(√123)²=11²= 121、これは123ではないため、123は正方形ではありません。ただし、floor(√121)²=11²= 121なので、121は正方形です。この方法は、特にハードウェアの平方根演算が利用可能な場合に、小さい数でうまく機能します。しかし、大きな数(数百または数千ビット)の場合、非常に遅くなる可能性があります。 直角度をテストする別の方法は、二次剰余表を使用して非正方形を除外することです。たとえば、基数10のすべての正方形には、0、1、4、5、6、または9のいずれかの最終(1桁)桁が必要です。これらの値は、基数10の2次剰余のセットを形成します。 -10の数字は0、1、4、5、6、または9で終わります。正​​方形である可能性があることがわかっているため、さらに調査が必要です。しかし、2、3、7、または8でベース10数が終了する場合は、あなたがすることができ、特定のそれがあることではないの正方形。 それでは、別のベースを見てみましょう。基数8のすべての正方形は、0、1、または4で終わる必要があります。これは、8つの可能性のうち3つにすぎないため、乱数が37.5%である可能性があります。これらはベース10が与えるものよりもはるかに良いオッズです。(そして、8を底とするモジュラス演算は、10を剰余とする除算である10を底とするモジュラスとは対照的に、単純に論理AND演算であることに注意してください。) さらに良い基盤はありますか?まあ、はい、実際に。ベース120には18の可能性(0、1、4、9、16、24、25、36、40、49、60、64、76、81、84、96、100、および105)があり、15%おそらく正方形になる可能性。また、ベース240はさらに優れており、可能性は24のみであり、正方形になる可能性は10%にすぎません。 しかし、単一のベースだけでは、直角度を決定的に決定することはできません(テストされる最大数より大きくない限り、それは著しく非実用的です)。単一の塩基だけでは、直角度のみを除外できます。直角度を最終的に検証することはできません。慎重に選択された基底のセットのみが、連携して動作し、整数の範囲全体で直角度を最終的に検証できます。 それで、質問は次のようになります:角型または非角型の決定的な推論を一緒に許可する最小のカバーを形成する基底のセットは何ですか? 正しいが最小限ではないカバーの例 カバー16ベースのカバー{3、4、5、7、8、9、11、13、16、17、19、23、25、29、31、37}は、すべての 16ビット値は0〜65535です。しかし、少なくとも1つの15ベースのカバーが存在し、これも簡単に発見できるため、最小限のカバーではありません。実際、おそらく6〜7塩基の非常に小さなカバーが存在する可能性があります。 しかし、説明のために、この16ベースのカバーセットを使用してnのサンプル値をテストする方法を見てみましょう。上記のベースのセットの2次剰余のセットは次のとおりです。 Base m Quadratic residue …

2
Xが3より大きく、XとYの間に少なくとも2つの差がある
私はいくつかのC ++をゴルフしようとしています。この条件を短くすることは可能ですか? X > 3 & X - Y > 1 (もちろん、空白の削除は別として。) だから、X少なくともです4がX >= Y + 2。 XおよびYは、[0,5]間隔の整数です。 ビット単位の数式を見つけようとしましたが、失敗しました。
11 code-golf  number  tips  c++  code-golf  popularity-contest  obfuscation  code-golf  c  code-golf  board-game  hexagonal-grid  code-golf  game  grid  code-golf  number  permutations  popularity-contest  math  graphical-output  number-theory  king-of-the-hill  code-challenge  compression  code-challenge  fastest-code  code-golf  math  ascii-art  animation  code-golf  popularity-contest  generation  counting  fastest-code  fastest-code  popularity-contest  image-processing  king-of-the-hill  code-golf  conversion  binary-tree  code-golf  math  number  rational-numbers  division  code-golf  restricted-source  hashing  atomic-code-golf  logic-gates  code-golf  function  code-challenge  puzzle-solver  ai-player  test-battery  popularity-contest  music  compression  code-golf  number  stack  atomic-code-golf  logic-gates  ascii-art  popularity-contest  code-golf  date  grid  code-challenge  game  code-golf  parsing  code-golf  math  geometry  sequence  popularity-contest  code-trolling  code-golf  string  restricted-source  code-golf  quine  king-of-the-hill  code-golf  math  code-golf  simulation  code-golf  ascii-art  code-challenge  sorting  optimization 

10
いくつかのロンリープライム
私は知っています、私は知っています、さらに別の素数の挑戦... 関連する 孤独(または単離された)プライムは素数であるpようにp-2、p+2、p-4、p+4... p-2k、p+2kいくつかのためにkすべての複合です。このような素数をth回分離素数と呼びますk。 たとえば211、すべて201, 203, 205, 207, 209, 213, 215, 217, 219, 221が複合であるため、5回分離された素数はです。(p-2*5=201、p-2*4=203など) チャレンジ 2つの入力整数、n > 3およびが与えられた場合、厳密により大きいk > 0最小のkth回分離された素数を出力しnます。 たとえば、範囲内のk = 5anyの場合、出力はである必要があります。これは、入力より厳密に大きい最小の5回分離された素数であるためです。n4 ... 210211n 例 n=55 k=1 67 n=500 k=1 503 n=2100 k=3 2153 n=2153 k=3 2161 n=14000 k=7 14107 n=14000 k=8 14107 ルール 該当する場合は、入力/出力が言語のネイティブ整数型に適合すると想定できます。 入力と出力は、任意の便利な方法で指定できます。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。

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