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

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

19
理論的にグラハムの数を出力します
グラハムの数Gは次のように定義されます。 u(3,n,1) = 3^n u(3,1,m) = 3 u(3,n,m) = u(3,u(3,n-1,m),m-1) [Knuth's up-arrow notation] [Conway chained arrow notation] THEN g1 = u(3,3,4) g2 = u(3,3,g1) g3 = u(3,3,g2) ... G = u(3,3,g63) あなたはu(3,3,2)=7625597484987あなたのコードをチェックするためにそれを与えられます。 あなたの仕事はG、十分な整数サイズと十分な時間を与えられて、決定論的に値を出力するプログラム/関数を書くことです。 参照資料 グラハムの数 クヌースの上矢印表記 コンウェイチェーン矢印表記 リーダーボード コードスニペットを表示 var QUESTION_ID=83873,OVERRIDE_USER=48934;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var …

19
私のパイは二等分されましたか?
正の整数の空でないリストを取り込むプログラムまたは関数を作成します。"1 2 3 4"またはなどの合理的で便利な形式で入力されていると想定できます[1, 2, 3, 4]。 入力リストの数値は、円グラフ全体のスライスを表します。各スライスサイズは対応する数値に比例し、すべてのスライスは指定された順序でグラフの周囲に配置されます。 たとえば、次のパイ1 2 3 4は次のとおりです。 あなたのコードが答えなければならない問題は、円グラフが今までされてい二分しますか?つまり、円の一方の側から他方の側に完全に直線があり、対称的に2つに分割されていますか? あなたはする必要があり、出力truthyの少なくとも一つの二等分線と出力がある場合に値をfalsy何も存在しない場合、値。 で1 2 3 4例との二分がある4 1と2 3出力truthyであろうように。 ただし、入力の1 2 3 4 5場合は二等分線がないため、出力は偽になります。 追加の例 数値を異なる方法で配置すると、二等分線が削除される場合があります。 例2 1 3 4→偽: 入力リストに数字が1つしかない場合、パイは二等分されません。 例10→偽: 複数の二等分線が存在する場合があります。ゼロ以上である限り、出力は真実です。 例6 6 12 12 12 11 1 12→真実:(3つの二等分線があります) 視覚的に明らかではない場合でも、2分割が存在する場合があります。 例1000000 1000001→偽: 例1000000 1000001 1→真実: (円グラフを生成してくれたnces.ed.govに感謝します。) テストケース …
43 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
アイデンティティマトリックスの構築
課題は非常に簡単です。入力が整数のn場合、n x n単位行列を出力します。単位行列は、1sが左上から右下に及ぶものです。作成した単位行列を返すまたは出力するプログラムまたは関数を作成します。出力は、2D配列、またはスペース/タブと改行で区切られた数値です。 入出力の例 1: [[1]] 2: [[1, 0], [0, 1]] 3: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] 4: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] 5: [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, …

12
自然発生の素数ジェネレーター
素数生成関数は非常に多数あります。それらのほとんどすべてが構築されており、エラトステネスのふるい、メビウス関数またはウィルソンの定理に基づいており、実際に計算することは一般的に実行不可能です。しかし、非常に簡単な構造を持ち、偶然発見されたジェネレーターもあります。 2003年、スティーブンウルフラムは、NKSサマースクールでのライブコンピューター実験で、ネストされた再帰方程式のクラスを調査しました。マシュー・フランクの周りの人々のグループが追加の実験を追跡し、単純な再発の興味深い特性を発見しました a(n) = a(n-1) + gcd(n,a(n-1)) 開始値はであるa(1) = 7。差はa(n) - a(n-1) = gcd(n,a(n-1))常に1または素数のように見えました。最初のいくつかの違いは(OEIS A132199)です。 1, 1, 1, 5, 3, 1, 1, 1, 1, 11, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …

30
この数値は-2の整数乗ですか?
数値が2のべき乗かどうかを判断する賢い方法があります。これはもはや興味深い問題ではないので、与えられた整数が-2の整数のべき乗かどうかを判断しましょう。例えば: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² ルール プログラムまたは関数を作成し、入力を受け取って出力を提供する標準的な方法を使用できます。 入力は単一の整数であり、整数が-2の整数乗である場合は出力が真実の値であり、それ以外の場合は偽の値である必要があります。他の出力(警告メッセージなど)は許可されません。 通常の整数オーバーフロールールが適用されます。ソリューションは、すべての整数がデフォルトで制限されていない仮想バージョン(または実際のバージョン)の任意の大きな整数で動作できる必要がありますが、実装によりプログラムが実際に失敗する場合それほど大きな整数をサポートしていなくても、ソリューションは無効になりません。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 勝利条件 これは、コードとゴルフのコンテストです。(選択したエンコーディングで)バイト数が最も少ない答えが勝者です。

30
数字の合計の2倍で割り切れますか?
入力として正の整数が与えられた場合、タスクは、数値がその数字の合計の2倍で割り切れる場合は真実の値を出力し、そうでない場合は偽の値を出力します(OEIS A134516)。言い換えると: (sum_of_digits)*2 | number 真と偽の場合に真実/偽の値の代わりに、真/偽の場合に値の有限セットを指定し、それらが他の値を補完することができます。簡単な例0として、真の場合に使用し、偽の場合に他のすべての数値を使用することができます(必要に応じて、その逆も可能です)。 標準の入力および出力ルールが適用されます。デフォルトの抜け穴も適用されます。 入力は、整数またはその整数の文字列表現として受け取ることができます。 これはcode-golfなので、バイト単位の最短コードが勝ちです! 私はPPCGが初めてなので、可能であれば説明を投稿してください。 テストケース 入力-出力-(理由) 80-Truthy-(16で80を分割) 100-真実-(2は100を除算) 60-Truthy-(12は60で割る) 18-Truthy-(18は18を分割) 12-Truthy-(6分割12) 4-偽-(8は4を分割しません) 8-偽-(16は8を分割しません) 16-偽-(14は16を分割しません) 21-偽-(6は21を分割しません) 78-偽-(30は78を分割しません) 110-偽物-(4は110をしませんでした) 111-偽-(6は111を分割しません) 390-偽-(24は390を分割しない)

7
共有(キャラクター)は思いやりです!
概要 次のタスクを検討してください。 正の整数n> 0を指定すると、その整数平方根を出力します。数の整数平方根Nの最大値であり、X 、X 2 ≤nは、通常、式で表さfloor(sqrt(n))。 例:25 -> 5、24 -> 4、40 -> 6、1 -> 1。 このタスクはそれ自体で十分簡単です。ただし、この課題では、25文字のみのセットを使用して、できるだけ多くの言語でこれを解決することがタスクです。 例 最初に、25バイトのセット(重複なし)を選択する必要があります。次のようになります(先頭のスペースに注意してください)。 ()*-.05:=>Mabdhilmnqrst| 次に、このセットの文字のみを使用して、できるだけ多くのテキストベースの(申し訳ありませんが、Piet)言語で問題の解決策を構築することが課題です。必要な回数だけ文字を使用できますが、セット外の文字を使用しないでください。 ソリューションは、完全なプログラムまたは関数のいずれかですが、スニペットではありません。たとえば、この文字セットを使用すると、次のことができます。 M -> (int) Math.sqrt(M) // Java (lambda expression) M => Math.sqrt(M)|0 // Javascript (unnamed function) lambda M: int(M**.5) // Python (lambda function) 3つの言語を使用したので、これは3のスコアを与えます。 回答に使用しているバイトのセットも含めてください。 ルール これはロゼッタストーンの挑戦です-あなたのスコアはあなたの提出物に含まれる言語の数です。最高のスコアが勝ちます。標準の抜け穴が適用されます。 この課題では、「言語」は明らかに異なるプログラミング言語としてカウントされます。同じ言語(Python 2、Python …

30
最大公約数
あなたの仕事は、与えられた2つの整数の最大公約数(GCD)をできるだけ少ないコードバイトで計算することです。 プログラムまたは関数を作成して、入力を受け取り、受け入れられた標準メソッド(STDIN / STDOUT、関数パラメーター/戻り値、コマンドライン引数などを含む)のいずれかを介して出力を返すことができます。 入力は2つの非負整数になります。言語のデフォルトの整数型でサポートされる全範囲、または範囲の[0,255]いずれか大きい方を処理できる必要があります。少なくとも1つの入力がゼロ以外になることが保証されます。 GCDまたはLCM(最小公倍数)を計算する組み込みの使用は許可されていません。 標準のコードゴルフ規則が適用されます。 テストケース 0 2 => 2 6 0 => 6 30 42 => 6 15 14 => 1 7 7 => 7 69 25 => 1 21 12 => 3 169 123 => 1 20 142 => 2 101 202 => 101

22
Natural Pi#0-ロック
ゴール 入力を受け取るプログラム/関数を作成し、整数のランダムなペアが比較的素数であるNかどうかを確認しN、を返しますsqrt(6 * N / #coprime)。 TL; DR これらの課題は、Piを概算するために自然と脳(およびおそらく再利用可能なリソース)のみを必要とするアルゴリズムのシミュレーションです。ゾンビの黙示録中に本当にPiが必要な場合、これらの方法は弾薬を無駄にしません!さらに8つの課題があります。推奨事項を作成するには、サンドボックスの投稿をチェックしてください。 シミュレーション 何をシミュレートしていますか?さて、2つのランダムな整数が比較的素数(すなわち、コプライムまたはgcd == 1)である確率は6/Pi/Piです。それらを数える; gcdが1 かどうかを確認します。繰り返す。これを数回繰り返した後、sqrt(6.0 * total / num_coprimes)に向かう傾向がありPiます。黙示録的な世界で平方根を計算するのが不安になっても心配しないでください!そのためのニュートン法があります。 これをどのようにシミュレートしますか? 入力してください N 次のN時間を実行します。 ランダムな正の整数を均一に生成しi、j と 1 <= i , j <= 10^6 もしgcd(i , j) == 1:result = 1 その他: result = 0 N結果の合計を取り、S 戻る sqrt(6 * N / S) …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

29
疑似要因
数学の問題や謎に時々現れる奇妙な数字があります。pseudofactorial(N)は、1からNまでの数の最小(つまり最小)公倍数です。つまり、1からNまでのすべての数値を要素として持つ最も低い数値です。 例えばpseudofactorial(7)= 3 * 4 * 5 * 7、これは7と同じです!ただし、2と6は他の用語に含まれているため削除されています。 pseudofactorial(N)を計算するプログラムを作成すると、いつものように、最短のコードが優先されます。 以下は、使用するための短いリストです。A003418の下のOEISで、より多くのテストケースを見つけることができます。 階乗: 1 2 6 24 120 720 5040 疑似要因: 1 2 6 12 60 60 420

3
ルービックキューブを解く
ルービックキューブ(3 * 3 * 3)を妥当な時間内に解決する最短のプログラムを作成し、移動します(たとえば、マシン上で最大5秒、1000回未満の移動)。 入力の形式は次のとおりです。 UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (この特定の入力は、解決されたキューブを表します)。 最初の12個の2文字の文字列は、UF、UR、... BL位置のエッジ(U =上、F =前、R =右、B =後、L =左、D =下)であり、次の8 3文字の文字列は、UFR、URB、... DBR位置のコーナーです。 出力は、次の形式で一連の動きを示します。 D+ L2 U+ F+ D+ L+ D+ F+ U- F+ D1またはD +はD(下)面を時計回りに90度回転することを表し、L2はL面を180度回転し、U3またはU-はU面を反時計回りに90度回転することを表します。 …

23
あなたがたは私を分断するすべての四角を捨てなさい
定義 完全な正方形は、別の整数の二乗として表すことができる整数です。たとえば、36は完全な正方形です6^2 = 36。 平方数によって除き、任意の完全な方形で割り切れない整数です1。たとえば、10は平方数です。しかし、12ので、平方数ではありません12で割り切れる4と4完璧な正方形です。 仕事 正の整数を指定するとn、を除算する最大の平方自由数を出力しnます。 テストケース n output 1 1 2 2 3 3 4 2 5 5 6 6 7 7 8 2 9 3 10 10 11 11 12 6 13 13 14 14 15 15 16 2 17 17 18 6 19 19 20 10 …

28
プロス番号ですか?
フランソワプロスにちなんで名付けられたプロス番号は、次のように表現できる番号です。 N = k * 2^n + 1 where kは奇数の正の整数で、nはのような正の整数です2^n > k。より具体的な例を使用してみましょう。テイク3. 3はProth番号です。 (1 * 2^1) + 1 そして2^1 > 1満足しています。5はProth番号でもあります。 (1 * 2^2) + 1 そして2^2 > 1満足しています。ただし、7はProth番号ではありません。フォームに書き込む唯一の方法N = k * 2^n + 1は (3 * 2^1) + 1 そして2^1 > 3満足していません。 あなたの挑戦は非常に単純です:あなたは、正の整数を与えられて、それがプロス数であるかどうかを決定するプログラムまたは関数を書かなければなりません。入力は合理的な形式で行うことができ、Proth番号の場合は真実の値を出力し、そうでない場合は偽の値を出力する必要があります。言語に「Proth-number detection」機能がある場合は、それらを使用できます。 テストIO 1000までの最初の46個のProth番号を以下に示します。(A080075) 3, 5, 9, …

30
2を3に置き換えます
正の整数nが与えられた場合、その素因数分解を行い、のすべての因子を2で置き換えるコードを記述し3ます。 例えば 12 = 2 * 2 * 3 -> 3 * 3 * 3 = 27 これはコードゴルフなので、目標は回答のバイト数を最小限にすることです。 テストケース 1 -> 1 2 -> 3 3 -> 3 4 -> 9 5 -> 5 6 -> 9 7 -> 7 8 -> 27 9 -> 9 10 -> 15 11 …

14
グレーコードの増分
前書き A グレイコード番号は1ビットだけではなく、ビットの可変量を切り替えるだけインクリメントされたバイナリ表現に対する代替です。以下に、10進数および2進数に対応するいくつかのグレーコードを示します。 decimal | binary | gray ------------------------- 0 | 0 | 0 ------------------------- 1 | 1 | 1 ------------------------- 2 | 10 | 11 ------------------------- 3 | 11 | 10 ------------------------- 4 | 100 | 110 ------------------------- 5 | 101 | 111 ------------------------- 6 | 110 | 101 …

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