Questions tagged «number-theory»

数论涉及数的性质和关系,主要是正整数。

2
解释基普尔!
介绍 Kipple是Rune Berg于2003年3月发明的基于堆栈的深奥编程语言。 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>b将从堆栈中弹出最高值a并将其推入堆栈b。弹出空堆栈总是返回0 a<b相当于b>a。a<b>c从弹出最高值,b并同时推入c和a。 加: + 句法: StackIndentifier+Operand Add运算符将堆栈上最顶层项目和操作数之和压入堆栈。如果操作数是堆栈,则从中弹出值。例如,如果堆栈的最高值为a1,a+2则将3压入堆栈。如果a为空,a+2则将2推入。如果堆叠的最值a和b是1和2,然后a+b将从栈中弹出的值2 b和3推入堆栈a。 减去: - 句法: StackIndentifier-Operand 减法运算符的工作方式与加法运算符完全相同,只是它减去而不是加法。 明确: ? 句法: StackIndentifier? 如果最上面的项目为0,则Clear运算符将清空堆栈。 解释器将忽略操作符旁边不存在的所有内容,因此以下程序将起作用:a+2 this will be ignored c<i。但是,添加注释的正确方法是使用#字符。#执行前,a 和行尾字符之间的所有内容都将被删除。ASCII字符#10在Kipple中定义为行尾。 操作数可以由两个运算符共享,例如a>b c>b c?可以写为a>b<c?。 该程序1>a<2 a+a将导致a包含值[1 4](从下到上),而不是[1 3]。对于-操作员也是如此。 控制结构 Kipple中只有一种控制结构:循环。 句法: (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
尽量减少那些人
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 您的任务是使用最少的个数和仅运算符+或来构建自然数-。例如,数字7可以写成1+1+1+1+1+1+1=7,但也可以写成11-1-1-1-1=7。第一个使用7,而第二个仅使用6。给定一些自然数,您的任务是返回可使用的最小数n。 这是代码高尔夫,因此以字节为单位的最短有效代码获胜。 测试用例 输入=>输出 0 => 2 (since 1-1=0) 7 => 6 121 => 6 72 => 15 1000 => 7 2016 => 21

9
查找小数表示形式的重复!
在2年前的这一挑战中,我们发现了一个单位分数()的周期1/n where n is a natural number。 现在,您的任务是编写一个程序/函数来查找单位分数的重复项。 该repetend是十进制扩展其重复无限,等的部分: 的十进制表示形式1/6是0.16666...,则重复数为6。 的十进制表示形式1/11是0.090909...,则重复数为09。 的十进制表示形式1/28是0.0357142857142857142857...,则重复数为571428。 眼镜 以任何合理的格式输入。 用十进制,字符串或list输出重复。 对于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 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 …

23
多边形数
多边形数是ksize的一个点中的点数n。 您将得到n和k,并且您的任务是编写一个输出/打印相应编号的程序/功能。 计分 这是代码高尔夫球。以字节为单位的最短解决方案获胜。 例 的3RD六边形数(k=6, n=3)是28因为有28上面的点。 测试用例 可以从此Pyth测试套件生成。 用法:每个测试用例n在上,k下两行。 n k output 10 3 55 10 5 145 100 3 5050 1000 24 10990000 更多信息 在Wikipedia中: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 (A051867),16 (A051868),17 …

3
曼哈顿数学
我定义以下运算符: 曼哈顿加法 a + M b(对于一位数字)是将b连接到a的结果。因此,a + M b = 10a + b。因此,通用运算符+ M的定义如下: a + M b = 10a + b 曼哈顿减法 a – M b(对于一位数字)是从a中删除最后一个b的结果。因此,运算符– M的定义如下: a – M b = a最后删除b 曼哈顿乘法 a× M b是用b的b实例替换a中的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给出输出3,因为它可以用三种方式表示: 2 x 15 3 x 10 5 x 6 Input 16 3提供output 1,因为只有一个不同的组: 2 x 2 x 4 输入2310 4给出输出10: 5 x 6 x 7 …

3
最近的分区号
整数的分区数是将整数表示为正整数之和的方式的数目。 例如: 5 4 + 1 3 + 2 3 + 1 + 1 2 + 2 + 1 2 + 1 + 1 + 1 1 + 1 + 1 + 1 + 1 有7种方式表示数字5,因此7是与数字5对应的分区号。 分区编号:OEIS:#A000041 方向 编写一个程序,以正整数作为输入,并输出生成两个最接近输入数字的分区号的两个数字。 输入必须为1个正整数。 如果输入不是分区号,则输出必须是2个不同的正整数,它们生成与输入号最接近的两个分区号。(如果两个分区号是其中一个输出号的相等候选者,那么选择哪个分区都没关系。) 如果输入是分区号,则输出必须是1个生成输入号的正整数。 输入和输出可以采用任何合理的格式。 您可以假设输入将不大于1亿(例如,输出将永远不大于95)。 内置函数来计算分区号不容许,与其他一起标准的漏洞。 这是code-golf,因此最少要赢得字节数。 分区编号:OEIS:#A000041 例子 Input: 66 …

7
混合基数转换
背景 这里的大多数人应该熟悉几种基本系统:十进制,二进制,十六进制,八进制。例如,在十六进制系统中,数字12345 16将代表 1*16^4 + 2*16^3 + 3*16^2 + 4*16^1 + 5*16^0 请注意,我们通常不希望基数(此处为16)从数字更改为数字。 这些常用的位置系统的一般化使您可以为每个数字使用不同的数字基础。例如,如果我们在十进制和二进制系统之间切换(从最低有效数字的底数为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从base 转换I为base O。您可以通过STDIN,ARGV或函数参数获取输入,然后返回结果或将其打印到STDOUT。 您可以假设: 在数字I和O都大于1。 在I与O非空。 输入数字在给定的基数中有效(即,没有比其基数大的数字)。 D可以为空(表示0)或可以有前导零。您的输出不应包含前导零。特别是,表示结果的结果0应作为空列表返回。 您不得使用任何内置或第三方基本转换功能。 这是代码高尔夫球,最短的答案(以字节为单位)获胜。 例子 D I O Result [1,0,0] [10] [2] [1,1,0,0,1,0,0] …

5
Hardy–Ramanujan数泛化
1729,称为Hardy–Ramanujan数,是可以用两种方式表示为两个正整数立方体的和的最小正整数12^3+1^3=10^3+9^3=1729。给定一个整数n(以您选择的语言所自然使用的任何形式作为输入),找到最小的正整数,可以将其表示为n以两种独特方式升为幂的两个正整数之和。不使用外部资源。最少的角色获胜。 注意,这实际上是一个未解决的问题了n>4。对于这些数字,让您的程序在搜索中永远运行,否则就死不了!使其具有足够的时间和资源,以便程序可以解决该问题。

1
通过整数操作实现IEEE 754 64位二进制浮点数
(我暂时将问题标记为“ C”,但是如果您知道另一种支持联合的语言,则也可以使用它。) 您的任务是+ - * /为以下结构构建四个标准数学运算符: 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。 您可以选择要操作的整数部分,甚至可以在不同的运算符之间使用不同的整数部分。(尽管我不确定您是否要这样做,您也可以选择从联合中的任何字段中删除“未签名”。) 您的分数是四个运算符中每个字符的代码长度总和。最低分获胜。 对于不熟悉IEEE 754规范的我们来说,这是一篇有关Wikipedia的文章。 编辑: 03-06 08:47在intfloat结构中添加了构造函数。您可以使用它们进行测试,而不必手动设置double /etc。

2
数论解释器,模n
一个句子数论(我们的目的)的是下列符号序列: 0和'(后继) -后继手段+1,所以0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(加法)和*(乘法) = (等于) (和)(括号) 逻辑运算符nand(a nand b是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之外没有其他共同因素),则存在一个数e,使得a ^ e \ equiv 1 \ mod m。a≡bmodma≡bmodma\equiv b\mod mm∣a−bm∣a−bm\mid a-baaammm111eeeae≡1modmae≡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 4 2 1 4 2 1 5 4 6 2 3 1 1 1 …

3
疯狂但理性的基础
基于10、2、36甚至-10,我们面临许多挑战,但是其他所有理性基础又如何呢? 任务 给定以10为底的整数和有理底数,请以该底数返回整数(作为数组,字符串等)。 处理 很难想象一个合理的基础,因此让我们使用爆炸点将其可视化: 考虑这个动画,以基数3表示17: 每个点代表一个单位,框代表数字:最右边的框是一个位置,中间的框是3 ^ 1位置,最左边的框是3 ^ 2位置。 我们可以从一个地方的17个点开始。但是,这是基数3,因此该位置必须小于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。 否定的有理基础在以上两种情况的组合中也类似地起作用。 规则 没有标准漏洞。 输出中每个“数字”的符号必须相同(或为零)。 所有数字的绝对值必须小于基数分子的绝对值。 您可以假定基数的绝对值大于1。 您可以假设一个理性基数是其最小化形式。 您可以在输入中分别计算基数的分子和分母。 如果一个数字具有多种表示形式,则可以输出其中任何一种。(例如,12在基体10可以是{-2, -8}和{1, 9, 2}在碱-10) 测试用例: 格式: {in, base} -> result {7, 4/3} -> {3, 3} {-42, -2} -> {1, 0, 1, …

6
逐位计算指数
您的任务是按照以下步骤缓慢计算幂运算: 给定两个输入(在此示例中为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, …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.