Questions tagged «number-theory»

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

30
获取一个具有不同数字的随机n位数字,第一个不是0
我读了这个问题,并认为这将是一个不错的挑战。 任务 给一个输入0<n<10生成一个随机数 正好n位数字 第一个不是 0 所以 f(n)>10**(n-1)-1 不同的数字 获奖标准 这是代码高尔夫球,因此最短的代码获胜。 随机 我的意思是随机分布均匀。因此,从程序的角度来看,每个可能的数字都有相同的机会。如果您使用的语言具有一个奇怪的随机数生成器,则可以使用该生成器。 例 要从中随机选择的值的列表n=2是: [10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, …
22 code-golf  number  random  grid  game  king-of-the-hill  javascript  code-golf  arithmetic  statistics  code-golf  math  code-golf  math  code-golf  string  palindrome  code-golf  string  interactive  code-golf  quine  polyglot  code-golf  string  stack-exchange-api  code-golf  number-theory  decision-problem  code-golf  tips  code-golf  string  internet  code-golf  graphical-output  image-processing  fractal  code-golf  ascii-art  geometry  hexagonal-grid  code-golf  string  restricted-source  hello-world  code-golf  game  code-golf  cipher  code-golf  permutations  cops-and-robbers  permutations  cops-and-robbers  code-golf  internet  stack-exchange-api  code-golf  ascii-art  random  code-golf  tips  code-golf  ascii-art  code-golf  code-golf  kolmogorov-complexity  code-golf  string  unicode  code-golf  number  sequence  primes  palindrome  code-golf  game  decision-problem  code-golf  math  geometry  code-golf  graphical-output  interactive  code-golf  set-partitions  code-golf  number  arithmetic  restricted-source  code-golf  decision-problem  python  recursion  code-golf  ascii-art  code-golf  source-layout  code-golf  function  recursion  functional-programming  code-golf  game  combinatorics  permutations  code-golf  string  file-system  code-golf  string  hashing  code-golf  stack-exchange-api  code-golf  string  code-golf  math  number  arithmetic  polyglot 

20
反转并减去
挑战说明 让我们取一个正整数n,反转其数字以获得rev(n)并获得这两个数字之差的绝对值:(|n - rev(n)|或abs(n - rev(n)))。 例: n = 5067 rev(n) = 7605 |n - rev(n)| = |5067 - 7605| = |-2538| = 2538 重复多次此操作后,大多数数字将变为 0(从而终止循环)... 5067 -> 2538 -> 5814 -> 1629 -> 7632 -> 5265 -> 360 -> 297 -> 495 -> 99 -> 0 ...虽然有些数字(例如 1584)陷入了无限循环: 1584 …

15
计算N的分区
您的挑战很简单:给定一个整数N,输出每个总和为N的正整数列表。例如,如果输入为5,则应输出 [1, 1, 1, 1, 1] [1, 1, 1, 2] [1, 1, 3] [1, 2, 2] [1, 4] [2, 3] [5] 这些列表不必以任何特定顺序输出,每个列表中的数字也不必。例如,这也是'5'的可接受输出: [1, 1, 1, 2] [5] [3, 1, 1] [2, 1, 2] [4, 1] [1, 1, 1, 1, 1] [2, 3] 您可以放心地假设输入将是一个正整数,并且您可以采用任何合理的格式使用此数字。 您不得使用任何内置函数来执行此操作。 如果您的程序失败或对于N而言花费的时间太长,这可以,但是您至少必须为前15个产生正确的输出。 存在标准漏洞,最短的答案以字节为单位! 测试IO 1: [[1]] 2: …

9
打印超级Collat​​z号码
将在Collat​​z序列(也称为3X + 1的问题)是你用任意正整数开始,在这个例子中,我们将使用10和应用这一套步骤吧: if n is even: Divide it by 2 if n is odd: Multiply it by 3 and add 1 repeat until n = 1 10是偶数,所以我们将2除以得到5。5是奇数,所以我们乘以3并加1得到16。16是偶数,因此将其切成两半得到8。8的一半是4,一半4是2,一半是2。因为这花了我们6步,所以我们说10的停止距离为6。 Super Collat​​z数是一个数字,其停止距离大于每个数字的停止距离。例如,6是Super Collat​​z数,因为6的停止距离为8,5的停止距离为5,4的为2,3的为7,2的为1,1的值为 0。(OEIS中的A006877)您必须以数字n作为输入,并输出直到n的所有Super Collat​​z数字。 规则 完整程序或功能是可以接受的。 您无法预先计算或对Super Collat​​z序列进行硬编码。 您可以采用任何合理的格式输入。 输出可以作为功能列表返回,也可以打印到STDOUT或文件中。以最方便的为准。 无效的输入(非数字,小数,负数等)导致未定义的行为。 示例非高尔夫python def collatzDist(n): if n == 1: return 0 if …

22
q是n的二次残基吗?
给定两个输入,q n确定是否q为的二次余数n。 也就是说,有一个x地方x**2 == q (mod n)或者是q一个方形模n? 输入项 两个整数qand n,其中q和n是任意整数0 <= q < n。 输出量 真实或错误。 可选,打印任何(或全部)x是x**2 == q (mod n) 例子 >>> quadratic_residue(1, 5) True >>> quadratic_residue(3, 8) False >>> quadratic_residue(15, 22) True 规则 您的代码必须是程序或函数。输入可以是任何顺序。这是代码高尔夫,因此以字节为单位的最短代码获胜。 如果有任何不清楚或需要修复的地方,请告诉我。 奖金 如果您的函数接受q为任意整数,则为2字节奖励。 目录 var QUESTION_ID=65329;var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";var COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk";var OVERRIDE_USER=47581;var answers=[],answers_hash,answer_ids,answer_page=1,more_answers=true,comment_page;function answersUrl(index){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(index,answers){return"http://api.stackexchange.com/2.2/answers/"+answers.join(';')+"/comments?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:true,success:function(data){answers.push.apply(answers,data.items);answers_hash=[];answer_ids=[];data.items.forEach(function(a){a.comments=[];var id=+a.share_link.match(/\d+/);answer_ids.push(id);answers_hash[id]=a});if(!data.has_more)more_answers=false;comment_page=1;getComments()}})}function …

2
自然数行
定义 有无穷级数的连接自然数(以1开头的正整数): 1234567891011121314151617181920212223... 挑战 以任何语言编写程序,该程序接受位置编号作为输入,并从上面定义的行中的该位置输出数字。 位置编号是任意大小的正整数。那是第一个位置是1,产生输出数字“ 1” 输入可以是十进制数(例如13498573249827349823740000191),也可以是对应于正整数的e表示法(例如1.2e789)。 程序必须在合理的时间内(在现代PC / Mac上为10秒)结束,并给出非常大的索引作为输入(例如1e123456-即1表示123456为零)。因此,简单的迭代循环是不可接受的。 如果输入无效,程序必须在1 s内以错误终止。例如。1.23e(无效)或1.23e1(等于12.3-不是整数) 可以使用公共BigNum库来解析/存储数字并对其进行简单的数学运算(+-* / exp)。没有应用字节惩罚。 最短的代码胜出。 TL; DR 输入:bignum整数 输出:无限行中该位置的数字 123456789101112131415... 一些验收测试用例 表示法为“输入:输出”。他们都应该通过。 1:1 999:9 10000000:7 1e7:7(与上面的行相同) 13498573249827349823740000191:6 1.1e10001:5 1e23456:5 1.23456e123456:4 1e1000000:0 1.23e:错误(语法无效) 0:错误(超出范围) 1.23e1:错误(不是整数) 奖金! 在编号内输出数字位置编号,并输出编号本身。例如: 13498573249827349823740000191: 6 24 504062383738461516105596714 数字'50406238373846151610559 6 714'的位置24处的数字' 6 ' 1e1000000: 0 61111 …

3
分解一个64位整数
编写一个GOLF汇编程序,该程序从stdin读取一个整数(后跟换行符),并输出由换行符分隔的素数,然后在stdout上输出尾随换行符。 主要因素不必按特定顺序排列。1不是主要因素。 您的GOLF二进制文件(组装后)必须适合8192字节。 通过运行10次,您的程序将获得评分,每次输入以下内容之一: 8831269065180497 2843901546547359024 6111061272747645669 11554045868611683619 6764921230558061729 16870180535862877896 3778974635503891117 204667546124958269 16927447722109721827 9929766466606501253 这些数字按照难度粗略排序。第一个应该很容易通过试算法解决。 对这组数字进行优化违反了问题的实质,我可以随时更改这组数字。您的程序必须适用于任何正的64位输入数字,而不仅仅是这些。 您的分数是用于计算上述数字的CPU周期的总和。 因为GOLF是非常新的,所以我将在此处包括一些指针。你应该阅读的 GOLF所有的指令和周期成本规格。在Github仓库示例程序中可以找到。请特别看一下析因示例程序,该程序演示了输入/输出。 通过运行将程序编译为二进制文件python3 assemble.py your_source.golf。然后使用运行您的程序python3 golf.py your_source.bin,这也应该打印周期计数。-d使用--help标志查看程序出口处寄存器内容的值-用于查看所有标志。

12
基数中阶乘的最后一个非零数字
您应该编写一个程序或函数,该程序或函数给出三个正整数n b k作为输入输出,或者返回k的基本b表示形式中的尾随零之前的最后一位数字n!。 例 n=7 b=5 k=4 factorial(n) is 5040 5040 is 130130 in base 5 the last 4 digits of 130130 before the trailing zeros are 3013 the output is 3013 输入项 3个正整数n b k,其中2 <= b <= 10。 输入整数的顺序可以任意选择。 输出量 返回或输出为整数或整数列表的数字列表。 前导零是可选的。 您的解决方案必须在一分钟之内在我的计算机上解决任何示例测试用例(我将仅测试关闭的用例。我的PC低于平均水平。)。 例子 添加了新测试以检查提交的正确性。(它们不属于1分钟内运行时规则的一部分。) 输入=>输出(可以选择省略前导零) 3 10 …

19
产生幸运数字
故事: 露西问乔治他的幸运数字是多少。经过深思熟虑,乔治回答说他有几个幸运数字。在短暂的困惑之后,露西问乔治他的第一个n幸运数字是什么。乔治然后要求您,他的伙伴,为他编写一个程序来为他完成工作。 挑战: 您将编写一个程序/函数,该程序/函数将从标准输入/函数参数接收一个字符串或整数n。然后,程序/函数将返回/输出第一个n 幸运数字。幸运数字通过一个筛子如下定义。 以正整数开头: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, ... 现在删除第二个数字: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, ... 剩下的第二个数字是3,因此请删除第三个数字: 1, …

28
n的最后一个非零数字!
给定整数1≤N≤1,000,000作为输入,输出N的最后一个非零数字!哪里!是阶乘(从1到N的所有数字的乘积)。这是OEIS序列A008904。 您的程序需要在合理的机器上10秒钟内完成任何有效输入。 测试用例 1 => 1 2 => 2 3 => 6 4 => 4 5 => 2 6 => 2 7 => 4 8 => 2 9 => 8 10 => 8 100 => 4 1000 => 2 10000 => 8 100000 => 6 1000000 => 4 这是一个代码高尔夫球,因此以字节为单位的最短代码胜出!

5
同余数
定义: 如果一个内角正好是90度,则将三角形视为直角三角形。 如果数字可以由整数的比率表示,则该数字被认为是有理数,即和p/q,其中p和和q均为整数。 如果存在一个三边均是有理的面积的直角三角形,则数字n是全等数字n。 这是OEIS A003273。 挑战 这是一个决策问题的挑战。给定输入数字时,x如果x是全等数字,则输出一个不同且一致的值,如果不是一个全等数字,则输出一个单独的不同且一致的值x。输出值不一定需要使用您的语言为真/假。 特殊规则 出于此挑战的目的,您可以假设Birch和Swinnerton-Dyer猜想是正确的。另外,如果您可以证明Birch和Swinnerton-Dyer的猜想,请索取您的$ 1,000,000千禧年奖金。;-) 例子 (使用True全等数字False)。 5 True 6 True 108 False 规则和说明 输入和输出可以通过任何方便的方法给出。 您可以将结果打印到STDOUT或将其作为函数结果返回。请在您的提交中说明输出可以采用的值。 完整的程序或功能都是可以接受的。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。

16
递归Collat​​z猜想
在考拉兹猜想假设,如果你把任意正整数,然后重复下面的算法足够的时间: if number is odd, then multiply by three and add one if number is even, then divide by two 您最终将得到1。它似乎总是可以工作,但是从未证明它总是可以工作。 您已经在计算达到1所需的时间了,所以我想我会稍微调整一下。 从给定的正整数开始,计算达到1所需的时间(其“停止时间”)。然后找到该号码的停止时间。 重复直到达到1,或者直到达到100次迭代的完全任意限制。在前一种情况下,打印所需的迭代次数。在后一种情况下,请打印“ Fail”或您选择的其他一致输出,只要它不是integer即可1≤n≤100。您可能不会为此选项输出空字符串。但是,允许输出[1,100]范围之外的整数。 例子: Input: 2 2->1 Output: 1 Input: 5 5->5->5->5->5->... Output: Fail Input: 10 10->6->8->3->7->16->4->2->1 Output: 8 Input: 100 100->25->23->15->17->12->9->19->20->7->16->4->2->1 Output: 13 Input: 10^100 10^100->684->126->108->113->12->9->19->20->7->16->4->2->1 Output: …

21
确定丰度
超丰数是一个整数n,它为除数和函数 σ的比率设置了一个新的上限。换句话说,当且仅当对于小于n的所有正整数x而言,n才是多余的: σ(n)n>σ(x)xσ(n)n>σ(x)x\frac{\sigma(n)}n>\frac{\sigma(x)}x 对于一些值: n σ(n) σ(n)/n superabundant 1 1 1.0000 yes 2 3 1.5000 yes 3 4 1.3333 no 4 7 1.7500 yes 5 6 1.2000 no 6 12 2.0000 yes 7 8 1.1429 no 8 15 1.8750 no 9 13 1.4444 no 这些的较长列表(用于测试用例)可以在OEIS A004394中找到。 一个强烈推荐的否定测试用例(如果您的口译员可以处理的话)是360360,因为它与最后一个多余的数字联系在一起。 挑战 您的程序应采用单个正整数,并输出表示该整数是否过多的真实或错误值。 因为这是代码高尔夫球,所以最短的答案以字节为单位。

16
还有一个程序,我出去了!
给定一个正整数嵌套级n和字符串s的打印的ASCII字符(到~,输出一个。方案,其中,以相同的语言运行时,输出一个程序,其输出程序输出该串s。 总计 n应该生成程序,所有程序都应以与您的答案相同的语言运行。 注意:您可以输出程序或函数-默认情况下,您可以将任何内容作为提交提交。 您可以s使用转义字符输入,以您的语言编写的程序或函数通常会如何输入字符串。 例 例如,给定n=1和s="recursion",Python 2程序可能输出: print "recursion" 运行此命令将输出: recursion 给定n=2和s =“ PPCG”,Python 2程序可能输出: print "print \"PPCG\" " 运行此输出: print "PPCG" 运行此输出: PPCG 相关(+标题灵感):还有一个LUL,我出门了 也相关(在沙箱中-现在已删除,但仍然可以以足够的信誉查看):源代码递归 测试用例 确保您的代码适用于以下测试用例(每行一个): n s 2 PPCG 4 Robert'); DROP TABLE Students;-- 17 Deep 2 Spaces In Here 3 "Don't forget quotes!" 5 'Backt`cks …
21 code-golf  recursion  code-golf  kolmogorov-complexity  board-game  code-golf  number-theory  polynomials  code-golf  code-golf  array-manipulation  polyglot  alphabet  answer-chaining  code-golf  sequence  math  atomic-code-golf  abstract-algebra  proof-golf  code-golf  internet  code-golf  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  ascii-art  number  integer  code-golf  decision-problem  binary-matrix  code-golf  number  sequence  number-theory  code-golf  math  decision-problem  matrix  abstract-algebra  code-golf  string  keyboard  code-golf  fractal  code-golf  math  sequence  combinatorics  hello-world  vim  code-golf  sequence  code-golf  graphical-output  image-processing  code-golf  decision-problem  matrix  linear-algebra  code-golf  ascii-art  code-golf  math  code-golf  ascii-art  graphical-output  code-golf  string  code-golf  string  substitution  code-golf  string  ascii-art  code-golf  arithmetic  code-golf  number  array-manipulation  decision-problem  code-golf  kolmogorov-complexity  code-generation  fractal  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  code-golf  string  array-manipulation  code-golf  music  code-golf  array-manipulation  code-golf  internet  stack-exchange-api  math  fastest-algorithm  code-golf  binary  bitwise  code-golf  date  code-golf  string  code-golf  sequence  integer  code-golf  arithmetic  number-theory  code-golf  string  random 

19
帕斯卡的交替三角形
Pascal的三角形是通过以1连续的加法开始并使其各行形成而生成的。相反,在这里,我们将通过交替的乘法和加法来形成一个三角形。 我们开始行1只是一个孤独的1。之后,对奇数行进行加法,对偶数行(1索引)进行乘法。在执行加法步骤时,假定三角形外部的空间用0s 填充。当执行乘法步骤时,假定外部被1s 填充。 这是向下到7行的完整三角形。左侧的*或+显示了执行该步骤以生成该行的步骤。 1 1 2 * 1 1 3 + 1 2 1 4 * 1 2 2 1 5 + 1 3 4 3 1 6 * 1 3 12 12 3 1 7 + 1 4 15 24 15 4 1 挑战 给定输入n,输出n该三角形的第th行。 规则 您可以选择使用0-index,但是请注意加法和乘法行必须翻转,以便如上所述生成完全相同的三角形。如果您选择这样做,请在提交的内容中注明。 …

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.