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

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

2
Kippleを解釈してください!
前書き Kippleは、2003年3月にRune Bergによって発明されたスタックベースの難解なプログラミング言語です。 Kippleには、27のスタック、4つの演算子、および制御構造があります。 スタック スタックは命名されているa- zと32ビット符号付き整数を含んでいます。また@、数値の出力をより便利にするための特別なスタックがあります。数字がにプッシュされる@と、その数字の数字のASCII値が実際にプッシュされます。(たとえば、12を@に押した場合、49を押し、次に50を押し@ます。) iプログラムが実行される前に、入力が入力スタックにプッシュされます。インタープリターは、i実行前に保存する値を要求します。実行が終了すると、出力スタック上のすべてoがポップされ、ASCII文字として出力されます。これはKippleの唯一のIOメカニズムであるため、Kippleプログラムとの対話は不可能です。 オペレーター オペランドは、スタック識別子または符号付き32ビット整数のいずれかです。 プッシュ:>または< 構文:Operand>StackIndentifierまたはStackIndentifier<Operand Push演算子は、オペランドを左に取り、指定されたスタックにプッシュします。たとえば12>a、値12をstackにプッシュしますa。a>bstackから一番上の値をポップし、stack aにプッシュしますb。空のスタックをポップすると常に0 a<bが返されb>aます。これはと同等です。a<b>c最上位から値ポップbの両方にとプッシュをcしてa。 追加: + 構文: StackIndentifier+Operand 追加演算子は、スタックの一番上の項目とオペランドの合計をスタックにプッシュします。オペランドがスタックの場合、値はそこからポップされます。たとえば、スタックの最上位の値aが1の場合、a+23をプッシュします。aが空の場合、a+22をプッシュします。スタックの一番上の値場合aとbがある1と2は、a+bスタックから値2をポップアップ表示されますbし、スタックに3を押しますa。 減算: - 構文: StackIndentifier-Operand Subtract演算子は、Add演算子とまったく同じように機能しますが、加算ではなく減算する点が異なります。 晴れ: ? 構文: StackIndentifier? Clear演算子は、最上位のアイテムが0の場合、スタックを空にします。 インタープリターは演算子の隣にないものをすべて無視するため、次のプログラムが機能しますa+2 this will be ignored c<i。ただし、コメントを追加する適切な方法は、#文字を使用することです。a #と行末文字の間のすべてのものは、実行前に削除されます。ASCII文字#10は、Kippleの行末として定義されています。 オペランドは2つの演算子で共有a>b c>b c?できますa>b<c?。たとえば、と書くことができます。 プログラム1>a<2 a+aはa、値を[1 4](下から上へ)含むようになり、ではありません[1 3]。-オペレーターも同様です。 制御構造 Kippleには、ループという制御構造が1つしかありません。 構文: (StackIndentifier code ) …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

3
それらを最小化する[非公開]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、上のトピックコードゴルフスタックExchange用。 3年前に閉店しました。 あなたの仕事はものの数が最も少ないと演算子のみ使用して自然数構築することである+かを-。たとえば、7という数字を書く1+1+1+1+1+1+1=7こともできますが、と書くこともできます11-1-1-1-1=7。7前者は1を使用し、後者はのみを使用し6ます。あなたのタスクは、何らかの自然数の入力が与えられたときに使用できるものの最小数を返すことnです。 これはコードゴルフであるため、バイト単位の最短の有効なコードが優先されます。 テストケース 入力=>出力 0 => 2 (since 1-1=0) 7 => 6 121 => 6 72 => 15 1000 => 7 2016 => 21

9
10進数表現の繰り返しを見つけてください!
で、この挑戦 2年前、我々が見つかりました。期間(単位分数のを1/n where n is a natural number)。 さて、あなたの仕事は単位分数の繰り返しを見つけるプログラム/関数を書くことです。 repetendは同様に、無限に繰り返される小数展開の一部です: の10進表現は1/6です0.16666...、それからrepetendは6です。 の10進表現は1/11です0.090909...、それからrepetendは09です。 の10進表現は1/28です0.0357142857142857142857...、それからrepetendは571428です。 スペック 妥当な形式で入力してください。 繰り返しを10進数、文字列、またはリストで出力します。 1/7(0.142857142857...)については、出力する必要があります142857代わりに428571。 1/13(0.076923076923076923...)、あなたは出力しなければならない076923代わりに、76923。 総当たりはしないでください。 テストケース Input Output 1 0 2 0 3 3 7 142857 13 076923 17 0588235294117647 28 571428 70 142857 98 102040816326530612244897959183673469387755 9899 000101020305081321345590463683200323264976260228305889483786241034447924032730578846348115971310233356904737852308313971108192746742095161127386604707546216789574704515607637135064147893726639054449944438832205273259925244974239822204263056874431760783917567431053641781998181634508536215779371653702394181230427315890493989291847661379937367410849580765733912516415799575714718658450348520052530558642287099707041115264168097787655318719062531568845337912920497019901 得点 これはコードゴルフですです。バイト単位の最短ソリューションが勝ちます。 目標は最短のソリューションを作成できる言語を見つけることではなく、各言語で最短のソリューションを見つけることであるため、答えは受け入れられません。 リーダーボード コードスニペットを表示 var QUESTION_ID=78850,OVERRIDE_USER=42854;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 …

23
多角形の数字
多角形の数は、kサイズの1角形のドットの数ですn。 とが与えられn、kあなたの仕事は、対応する番号を出力/印刷するプログラム/関数を書くことです。 得点 これはcode-golfです。バイト単位の最短ソリューションが勝ちです。 例 3RD六角数は(k=6, n=3)で28あるので、28上記のドットが。 テストケース このPythテストスイートから生成できます。 使用法:テストケースごとに2行、n上、k下。 n k output 10 3 55 10 5 145 100 3 5050 1000 24 10990000 さらに詳しい情報 ウィキペディア:https : //en.wikipedia.org/wiki/Polygonal_number Wolfram Mathworld:http : //mathworld.wolfram.com/PolygonalNumber.html OEIS Wiki:http : //oeis.org/wiki/Polygonal_numbers さまざまなnのn対角数のOEISシーケンス:3 (A000217)、4 (A000290)、5 (A000326)、6 (A000384)、7 (A000566)、8 (A000567)、9 (A001106)、10 (A001107)、11 (A051682)、12 (A051624)、13 (A051865)、14 (A051866)、15 …

3
マンハッタンの数学
次の演算子を定義します。 マンハッタンの加算 a + M b(1桁の数字の場合)は、bをaに連結した結果です。したがって、a + M b = 10a + bです。したがって、一般演算子+ Mは次のように定義されます。 a + M b = 10a + b マンハッタン減算 a – M b(1桁の数字の場合)は、aから最後のbを削除した結果です。したがって、演算子– Mは、擬似コードで次のように定義されます。 a – M b = a最後のbを削除 マンハッタン乗算 a× M bは、aのbのすべてのインスタンスをbのbインスタンスに置き換えた結果です。エルゴ、× Mは擬似コードで次のように定義されます。 a× M b = a-> s / b / <b bのコピー> …

14
合成番号シーケンス
合成番号シーケンス この質問に触発された 正の整数nを指定すると、コードは最初のn個の合成数を出力する必要があります。 入出力 プログラムまたは関数を作成できます。入力はSTDINまたは関数の引数を介して行われ、出力はSTDOUTまたは関数の戻り値を介して行われます。 出力は、リスト、配列、または文字列です。 例 0 -> 1 -> 4 2 -> 4, 6 3 -> 4, 6, 8 13 -> 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22 ルール いつものように、標準的な抜け穴は許可されていません。 素数または合成数を生成するビルトインは許可されていません。 素数または合成数に関連するビルトインは許可されていません。

5
NをM個の整数の積として書く方法はいくつありますか?
整数Nが与えられた場合、M整数> 1の積として表現できる方法の数をカウントします。 入力は単純にNおよびMであり、出力は個別の整数グループの総数です。つまり、整数を複数回使用できますが、各グループは別個でなければなりません(存在する3 x 2 x 2場合2 x 2 x 3はカウントされません)。 制約 1 < N <2 31 1 < M <30 例 入力30 2は33つの方法で表現できるため、outputを提供します。 2 x 15 3 x 10 5 x 6 入力16 3はoutputを提供します。これは1、異なるグループが1つしかないためです。 2 x 2 x 4 入力2310 4は出力を与えます10: 5 x 6 x 7 x 11 3 …

3
最も近いパーティション番号
整数のパーティションの数は、整数を正の整数の合計として表すことができる方法の数です。 例えば: 5 4 + 1 3 + 2 3 + 1 + 1 2 + 2 + 1 2 + 1 + 1 + 1 1 + 1 + 1 + 1 + 1 番号5を表す方法は7つあります。したがって、7は番号5に対応するパーティション番号です。 パーティション番号:OEIS:#A000041 行き方 入力として正の整数を取り、入力番号に最も近い2つのパーティション番号を生成する2 つの数値を出力するプログラムを作成します。 入力は1つの正の整数でなければなりません。 入力がそうでない場合パーティション番号で番号に最も近い2つのパーティション番号を生成する2つの異なる正の整数でなければなりません。(2つのパーティション番号が出力番号の1つの候補に等しい場合、どちらを選択してもかまいません。) 入力がパーティション番号である場合、出力は入力番号を生成する1つの正の整数でなければなりません。 入力および出力は、合理的な形式である可能性があります。 入力が1億を超えないことを想定できます(たとえば、出力が95を超えることはありません)。 パーティション番号を計算する組み込み関数は、他の標準の抜け穴と一緒に許可されていません。 これはcode-golfなので、最小バイト数が勝ちます。 パーティション番号:OEIS:#A000041 例 Input: …

7
混合ベース変換
バックグラウンド ここのほとんどの人は、10進数、2進数、16進数、8進数などのいくつかの基本システムに精通している必要があります。たとえば、16進数システムでは、番号12345 16は次を表します。 1*16^4 + 2*16^3 + 3*16^2 + 4*16^1 + 5*16^0 通常、ベース(ここでは16)が数字から数字に変わることを期待していないことに注意してください。 これらの通常の位置システムを一般化すると、数字ごとに異なる数値ベースを使用できます。たとえば、10進法と2進法を交互に使用している場合(最下位の10から始まる)、190315 [2,10]は次のようになります。 1*10*2*10*2*10 + 9*2*10*2*10 + 0*10*2*10 + 3*2*10 + 1*10 + 5 = 7675 このベースをとして示し[2,10]ます。一番右のベースが対応する最も重要な数字。次に、数字(左)を通り抜けながら(左)底を通り、底よりも多くの数字がある場合は折り返します。 詳細については、Wikipediaを参照してください。 チャレンジ 数字のリストが与えられると、プログラムや関数書き込みD入力ベースIと出力ベースO、で表される整数変換DベースからIベースにしますO。STDIN、ARGV、または関数引数を介して入力を取得し、結果を返すか、STDOUTに出力できます。 あなたは仮定するかもしれません: Iおよびの数値Oがすべてより大きいこと1。 非空です。IO 入力番号が指定された基数で有効であること(つまり、その基数よりも大きい数字がないこと)。 D空(を表す0)にすることも、先頭にゼロを付けることもできます。出力に先行ゼロが含まれていてはなりません。特に、表す結果0は空のリストとして返される必要があります。 組み込みまたはサードパーティのベース変換関数を使用しないでください。 これはコードゴルフで、最短の回答(バイト単位)が勝ちです。 例 D I O Result [1,0,0] [10] [2] [1,1,0,0,1,0,0] [1,0,0] [2] …

5
ハーディ・ラマヌジャン数の一般化
1729は、ハーディ–ラマヌジャン数として知られ、2つの方法で正の整数の2つの立方体の合計として表現できる最小の正の整数です(12^3+1^3=10^3+9^3=1729)。n(選択した言語にとって自然な形式の入力として)整数が与えられた場合n、2つの一意の方法で2のべき乗した正の整数の和として表現できる最小の正の整数を見つけます。外部ソースを使用しません。最も少ないキャラクターが勝ちます。 これは実際にはの未解決の問題であることに注意してくださいn>4。これらの数値については、プログラムを検索で永久に実行するか、試してみてください!無限の時間とリソースが与えられた場合に、プログラムが問題を解決するようにします。

1
整数操作によりIEEE 754 64ビットのバイナリ浮動小数点数を実装します
(とりあえず質問「C」にタグを付けましたが、共用体をサポートする別の言語を知っている場合は、それも使用できます。) あなたの仕事は+ - * /、次の構造体の4つの標準的な数学演算子を作成することです。 union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 演算自体は整数部分のみを操作またはアクセスするため(演算中にdoubleと比較することはありません)、結果はまったく同じです(またはのような非数値の結果の場合は機能的に同等ですNaN)対応する数学演算がdouble代わりに直接適用されたかのように。 操作する整数部分を選択できます。おそらく、異なる演算子間で異なる部分を使用することもできます。(ユニオンのフィールドのいずれかから「unsigned」を削除することもできますが、それを実行するかどうかはわかりません。) スコアは、4つの演算子のそれぞれの文字のコードの長さの合計です。最低スコアが勝ちます。 IEEE 754規格に慣れていない私たちの人のために、ここではウィキペディアにそれについての記事です。 編集: 03-06 08:47 intfloat構造体にコンストラクタを追加しました。double /などを手動で設定するのではなく、テストに使用できます。

2
nを法とする数論のインタープリター
(私たちの目的のための)数論の文は、次の記号のシーケンスです。 0および'(後継者)-後継者は+1、0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(加算)と*(乗算) = (に等しい) (と)(括弧) 論理演算子nand(a nand bis not (a and b)) forall (ユニバーサル数量詞) v0、v1、v2、など(変数) ここに文の例があります: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) ここでnot xは省略形ですx nand x-実際の文が使用する(v1*v1*v1 + v2*v2*v2 = v3*v3*v3) nand …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

12
魔法のモジュロ正方形
私は数論の大ファンです。数論の大きなことはモジュラー算術です。m \ mid abの場合にのみ、定義はなります。楽しいことは、累乗することです。特に、モジュラスが素数の場合です。特に、aとmが比較的素数(1以外の共通因子を共有しない)の場合、a ^ e \ equiv 1 \ mod mのような数eが存在することが証明されています。≡ Bモッドma≡bmodma\equiv b\mod mm ∣ a − bm∣a−bm\mid a-bM 1 E A E ≡ 1aaammm111eeeae≡ 1モッドmae≡1modma^e\equiv 1\mod m 例題で演習を説明します。モジュラスm = 7m=7m=7取りましょう。プログラムまたは関数の可能な出力は次のとおりです。 3 2 6 4 5 1 2 4 1 2 4 1 6 1 6 1 6 1 …

3
クレイジーだが合理的な基盤
ベース10、ベース2、ベース36、さらにはベース-10に基づいて多くの課題がありますが、他のすべての合理的なベースはどうでしょうか? 仕事 基数10の整数と有理数基数を指定すると、その基数の整数を(配列、文字列などとして)返します。 処理する 合理的なベースを想像するのは難しいので、Exploding Dotsを使用して視覚化しましょう。 ベース3で17を表すこのアニメーションを検討してください。 各ドットは単位を表し、ボックスは数字を表します。右端のボックスは自分の場所、中央のボックスは3 ^ 1の場所、左端のボックスは3 ^ 2の場所です。 私たちは自分の場所に17個の点から始めることができます。ただし、これは3を基数としているため、1の場所は3未満でなければなりません。したがって、3つのドットを「爆発」させ、左側のボックスにドットを作成します。爆発可能なドットのない安定した位置になるまでこれを繰り返します(つまり、同じボックスに3つのドット)。 したがって、基数10の17は基数3の122です。 分数ベースは、いくつかのドットを複数のドットに分解することに似ています。ベース3/2は3ドットを爆発させて2を作成します。 ベース3/2で17を表現: したがって、基数10の17は基数3/2の21012です。 負の基底も同様に機能しますが、記号を追跡する必要があります(-1に等しいいわゆるアンチドットを使用します。白丸で表されます)。 ベース-3で17を表現: すべてのボックスの記号を同じにするために、余分な爆発があります(ゼロを無視して)。 したがって、基数10の17は基数-3の212です。 上記の2つのケースの組み合わせでは、負の有理数ベースも同様に機能します。 ルール 標準的な抜け穴はありません。 出力の各「数字」の符号は同じ(またはゼロ)でなければなりません。 すべての数字の絶対値は、基数の分子の絶対値より小さくなければなりません。 ベースの絶対値は1より大きいと仮定できます。 有理数ベースは、その最小の縮小形にあると仮定できます。 入力では、分子のベースと分母を別々に使用できます。 数値に複数の表現がある場合、それらのいずれかを出力できます。(例えば、ベース10に12とすることができる{-2, -8}と{1, 9, 2}ベース-10で) テストケース: フォーマット: {in, base} -> result {7, 4/3} -> {3, 3} {-42, -2} -> {1, 0, 1, …

6
ビットごとに指数を計算する
あなたの仕事は、次の手順でゆっくりとべき乗を計算することです。 2つの入力(この例では4と8)が与えられた場合、ビットごとに方程式を計算して累乗を計算する必要があります。すると4^8、ベース値が大きくなり(4)、指数が小さくなります(8)。より多くのべき乗と除算を使用してこれを行うことができます。指数を値Xで除算し(Xが指数の素因数である場合)、ベース値(B)をにすることができB^Xます。たとえば、次のことができます。 4^8 = (4 ^ 2)^(8 / 2) = 16^4 前の方程式でXを2に置き換えました。 次のようにして16^4、さらに「単純化」できますX = 2。 16^4 = (16 ^ 2)^(4 / 2) = 256^2 そして最後に数を計算します(もう一度X = 2): 256^2 = (256 ^ 2)^(2 / 2) = 65536^1 = 65536 したがって、 4^8 = 16^4 = 256^2 = 65536 これはあなたが与えるべき出力です。出力セパレーターは少し柔軟性があります。たとえば、数式をの代わりに改行またはスペースで区切ることができます=。または、それらをリストに入れることもできます(ただし^、区切り文字として数字や文字を使用しないでください)。 Martin Enderが指摘したように、これ^も柔軟性があります。たとえば、あなたが使用することができます[A, B]またはA**B代わりのA^B出力に。 …

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