Questions tagged «number»

旨在通过使用,操纵,接受输入或输出数值来解决此难题。

3
霍尔数
正如我们从“圣数字”中学到的那样,有5个圣数字(0, 4, 6, 8, 9),而仅由这些数字组成的正整数是圣数字。此外,数字的完整度是数字中的孔的总和(+2对于每个0或8,+1否则)。 现在,还有一个要考虑的附加属性,可以真实准确地表示数字的圣洁性。您会看到,不仅数字中的孔数量很重要,而且数字出现的位置也很重要。 考虑数字88。根据我们的旧规则,它的圣洁度为4。但这不公平!在8左边做更多的工作比其他8- 10倍的工作!它的工作应该得到回报。我们将以等于其右边所有数字的总圣洁度的额外圣洁度奖励它(包括此规则授予其右边数字的额外圣洁度),减去-1。 以下是更多需要考虑的示例: Number: 8080 Digital holiness: (2 + 7 - 1) + (2 + 3 - 1) + (2 + 1 - 1) + (2 + 0 - 1) Total holiness: 15 Number: 68904 Digital holiness: (1 + 5 - 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 …

25
打印第N个非回文数
回文数(如果您不知道)是一个前后读相同的数字(例如11)。前15个非回文数为:10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26。这是A029742。我经常需要这些数字,但是我的便签本很小,因此您的代码必须尽可能短。 规则 每个提交都必须是完整的程序或函数(例如,在C语言中,您不能只定义没有标题的函数,而可以定义具有必要标题的函数)。 如果可能,请提供指向可以测试您的程序的站点的链接。 您的程序不得向写入任何内容STDERR。 您可以将输入作为自变量,也可以取自STDIN(或使用您语言中最接近的替代物)。 程序根据字节计分。通常的字符集是UTF-8,如果使用其他字符集,请指定。 禁止出现标准漏洞。 测试用例 1 ==> 10 ----- 5 ==> 15 ----- 12 ==> 23 计分 这是代码高尔夫球,因此最少字节获胜。 意见书 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以将旧分数保留在标题中,方法是将它们打掉。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes …

13
重点是什么?
编写一个程序或函数,该程序或函数接受两个整数,这些整数表示笛卡尔平面上某点的X和Y坐标。 该输入可以进来任何合理的格式,只要该X值Y.例如之前到来时,1 -2,(1,-2),[1, -2],或1\n-2都将是罚款X = 1,Y = -2。 打印或返回描述该点在平面中位置的单个字符串(后跟可选的尾随换行符): 1如果点在象限 I 2 如果该点在第二象限中 3 如果该点在象限III中 4 如果该点在象限IV中 X如果该点在x轴上(x不允许小写) Y如果点在y轴上(y不允许小写) O 如果该点在原点上(那是一个大写字母“哦”,而不是零) 以字节为单位的最短代码获胜。决胜局将进入投票较高的答案。 测试用例 (1,-2) -> 4 (30,56) -> 1 (-2,1) -> 2 (-89,-729) -> 3 (-89,0) -> X (0,400) -> Y (0,0) -> O (0,1) -> Y (0,-1) -> Y …

13
删除数字,保留更多数字
介绍 挑战在于找到从具有x个数字的原始数字n中删除y个数字的最大数字。 假设y=2 n=5263 x=4,可能的数字去除y = 2位数字是: [52, 56, 53, 26, 23, 63] 因此,63此示例的输出必须是最大数。 另一个逻辑是:对于每个y,从左到右搜索下一个更大的数字,然后将其删除,否则,当不匹配时,删除最后一个y数字。 使用y=3 n=76751432 x=8说明: y=3 76751432 -^------ remove 6 because right next 7 is greater y=2 7751432 ---^--- remove 1 because right next 4 is greater y=1 775432 -----^ the search failed, then remove last y …

30
n维空间中两点之间的距离
这是另一个简单的例子: 挑战 给定n维空间中的两个点,输出它们之间的距离,也称为欧几里得距离。 坐标将是有理数;唯一的限制就是您的语言限制。 最小尺寸为1,最大尺寸取决于您的语言 您可以假设两个点的尺寸相同,并且没有空输入。 距离必须正确至少为小数点后3位。如果您的语言不支持浮点数,请输出最接近的整数。 规则 与往常一样,允许使用功能或完整程序。 输入可以从STDIN,命令行或函数参数中获取。 输入格式取决于您,指定您在答案中使用的格式。 可以通过打印到标准输出或返回值来提供输出。 这是代码高尔夫球,因此最低字节数获胜!如果是平局,则较早的答案为准。 测试用例 每个点由长度为n的列表表示。 [1], [3] -> 2 [1,1], [1,1] -> 0 [1,2], [3,4] -> 2.82842712475 [1,2,3,4], [5,6,7,8] -> 8 [1.5,2,-5], [-3.45,-13,145] -> 150.829382085 [13.37,2,6,-7], [1.2,3.4,-5.6,7.89] -> 22.5020221314 编码愉快!

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 …

16
星期一迷你高尔夫#4:JARVIS(又一大套整数序列)
星期一迷你高尔夫:每个星期一发布一系列简短的代码高尔夫问题(希望!)。 (对不起,我又迟到了;昨天和今天基本上都离开了我的电脑。) 美国程序员(尤其是代码高尔夫球手)肯定喜欢任意整数序列。我们甚至拥有一个专门用于这些序列的完整站点,目前大约有200,000个条目。在这个挑战中,我们将实现另一组这些序列。 挑战 您面临的挑战是编写一个程序或函数,该程序或函数采用整数N,并输出以10为底的整数序列,其中每个下一个整数都是通过以下方式确定的: 从1开始 对于先前整数的以10为底的表示形式的每个数字D: 如果D为0,则将当前整数加1。 否则,乘以目前的整数d。 细节 您可以假设0 < N <2 31。 您必须从输入数字开始输出序列中的每个整数,直到达到小于10的数字。 输出可以是数组,也可以是由空格,逗号,换行符或它们的组合分隔的字符串。 允许使用尾随空格和/或换行符,但不能使用尾部逗号。 永远不应有任何前导零。 例子 范例1: 77 这个例子很简单: 77 = 1*7*7 = 49 49 = 1*4*9 = 36 36 = 1*3*6 = 18 18 = 1*1*8 = 8 因此,正确的输出为77 49 36 18 8。 范例2: 90 …

18
输出Iccanobif序列
编写程序或命名函数,该程序或函数将输出或返回序列,直到nIccanobif序列中的第th个整数,在OEIS上记录为A014258。请注意,0如果n为零,则仅打印序列()中的第零个元素。 该序列是通过像标准Fibonacci序列一样开始而生成的,但是在将前两个数字相加后,可以翻转结果并删除所有前导零。至少对我而言,一个有趣的事实是该序列没有严格增加(请参见下面的列表)。它似乎也(可能)严格大于或等于斐波那契数列。 程序的输入必须是整数。 为了您的观看乐趣,此处提供了序列的前20个数字: 0, 1, 1, 2, 3, 5, 8, 31, 93, 421, 415, 638, 3501, 9314, 51821, 53116, 739401, 715297, 8964541, 8389769 禁止出现标准漏洞。 最短的程序获胜。 编辑:添加了一条注释,以澄清该序列从第零个元素开始,如果n为零,则应包括在内。 IO可能性示例: 0 -> 0 1 -> 0 1 6 -> 0 1 1 2 3 5 8 17 -> [0, 1, 1, 2, …

5
StickStack编号
StickStack是一种非常简单的基于堆栈的编程语言,只有两条指令: | 将堆栈长度推到堆栈上 -从堆栈中弹出前两个元素,然后将它们的差值推回(second topmost - topmost) 语言细节 程序开始时堆栈为空。 所有指令从左到右依次执行。 如果堆栈中的数字少于2,则该-指令是非法的。 在执行结束时,堆栈应恰好包含一个数字。 StickStack程序可以生成任何整数。例如: |||--||-- generates the number 2 through the following stack states: [] [0] [0, 1] [0, 1, 2] [0, -1] [1] [1, 1] [1, 1, 2] [1, -1] [2] 要评估您的StickStack代码,您可以使用此在线(CJam)评估程序。(感谢@Martin提供的代码。) 任务 您应该编写一个给定整数值作为输入输出的程序或函数,或者返回一个代表输出给定数字的StickStack程序的字符串。 计分 您的主要得分是以下给定测试用例的StickStack程序的总长度。分数越低越好。 仅当您在所有测试用例上运行了程序并计算了分数时,您的提交才有效。 您的次要(抢七)得分是生成程序或函数的长度。 输入测试用例 (每个数字都是不同的测试用例。) …

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, …

9
确定给定方程为真的基数
给定3个整数,请确定前两个整数乘以第三个整数的最低可能基数。如果您想到了关于生命,宇宙和一切终极问题的答案,则6 * 9 == 42在Base 13中是正确的。 输入可以包括任何数字,其数字使用字符0-9,az和AZ,其中以a10为基数等于10,以10为基数等于Z61。 输入应该以您喜欢的任何方式输入(硬编码除外),并且您可以编写单个函数或整个程序。 必须考虑的最大基数是62,最小基数是2。 您可以假定前两个值小于第三个值。您还可以得出结论,最小基数比输入中的最高数字/字符大一个(例如,如果输入为3 1a 55,则最小基数将为Base 11,因为a它是最高数字)。 如果没有这样的基准,则返回您选择的垃圾值。 这是代码高尔夫,所以最短的代码获胜。 测试用例 6 9 42 --> 13 a a 64 --> 16 aA bB 36jk --> 41 2 3 20 --> <junk value> 10 10 100 --> 2

2
准备去死?
背景 桌上型角色扮演游戏中ennui的一种来源是处理涉及许多骰子的掷骰。施放解散咒语可能是瞬间的,但滚动并加在一起40个骰子肯定不是! rpg.stackexchange.com上讨论了许多处理此问题的建议。但是,其中一些(例如使用滚轴程序或平均骰子)会剥夺玩家的一些乐趣和控制感。其他方法,例如滚动4个骰子并将总数乘以10,会使结果波动更大(平均骰子作用相反)。 这个问题涉及减少骰子掷骰数而不改变平均结果(均值)或其摆动(方差)的方法。 记数法和数学 在这个问题中,我们将使用以下表示法来表示骰子掷骰: n d k(例如40d6)是指k面模具的n卷总和。 n d k * c(例如4d6 * 10)描述将结果乘以常数c。 我们还可以添加滚动(例如4d6 * 10 + 40d6)和常数(例如4d6 + 10)。 对于单模辊,我们可以证明: 均值:E [1d k ] =(k + 1)/ 2 方差:Var(1d k)=(k-1)(k + 1)/ 12 利用均值和方差的基​​本属性,我们可以进一步推断出: 均值:E [ m d k * a + n d l * …

30
弦之塔
给定文本字符串,将其输出为“塔”。 字符串的每个片段(形式为0:n)都重复5*n一次,因此第一个字符重复5次,然后第一个和第二个重复10次,依此类推。 例子: 'hello' -> ['h'] ['h'] ['h'] ['h'] ['h'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e', 'l'] ['h', 'e', 'l'] ['h', 'e', 'l'] ['h', 'e', 'l'] ['h', 'e', 'l'] ['h', 'e', 'l'] ['h', 'e', …

30
将两个数字相乘
输入:两个十进制整数。这些可以在标准输入中作为程序或函数的参数或列表形式提供给代码。 输出:其乘积,以十进制整数表示。例如,输入5 16将导致输出80。 限制:请没有标准漏洞。这是代码高尔夫球,以最少的字节数获胜。 注意:布局因我先前的挑战而被盗,请加上两个数字。 测试用例: 1 2 -> 2 4 5 -> 20 7 9 -> 63 -2 8 -> -16 8 -9 -> -72 -8 -9 -> 72 0 8 -> 0 0 -8 -> 0 8 0 -> 0 -8 0 -> 0 0 0 -> 0 …
21 code-golf  math  number 

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.