Questions tagged «arithmetic»

与基本算术有关的挑战。

24
五个立方体的总和
给定一个整数,输出五个总和为该整数的理想立方体。请注意,多维数据集可以是正数,负数或零。例如, -10 == -64 - 64 + 64 + 27 + 27 因此对于输入-10您可以输出[-64, -64, 64, 27, 27],尽管其他解决方案也是可行的。请注意,您应该输出多维数据集,而不是要输出的数字。 始终存在解决方案-您可能会为自己感到困惑。进一步推测四个立方体就足够了。

30
尽可能公平
介绍 在这个挑战中,您应该将整数分成两部分。由于没有人喜欢小菜一碟,因此您的目标是尽可能做到公平。例如,如果您想将整数7129分成两部分,则有3种可能的方法。 7,129,71,29并且712,9都是可能的,但这71,29是将其分为两部分的最公平的方法,因为它最大程度地减少了两者之间的差异: 7 129 -> |7-129| = 122 71 29 -> |71-29| = 42 712 9 -> |712-9| = 703 挑战 给定一个整数,如上所述,确定对其进行分区的最佳可能方式并报告产生的差异。 规则 拆分仅对长度至少为2的整数有意义,输入将​​始终≥10 输入可以是整数,数字列表或字符串 您不必处理无效的输入 测试用例 您只需要报告所产生的差异,分区仅在此处进行说明: 10 -> 1,0 -> 1 11 -> 1,1 -> 0 12 -> 1,2 -> 1 13 -> 1,3 -> 2 101 …

30
用最大位数减少数字
任务: 给定十进制数字系统中的整数,将其减少为一个十进制数字,如下所示: 将数字转换为十进制数字列表。 找出最大的数字D 从列表中删除D。如果出现多个D,请从左侧选择第一个(最重要的位置),所有其他D应保持不变。 将结果列表转换为十进制数字,然后将其乘以D。 如果数字大于9(具有超过1个十进制数字),请重复整个过程,并将结果输入其中。得到一个数字的结果时停止。 显示结果。 例: 26364 -> 1. 2 6 3 6 4 2. The largest digit is 6, so D=6 3. There are two occurrences or 6: at positions 1 and 3 (0-based). We remove the left one, at position 1 and get the list …

30
我的条形码有效吗?
的EAN-8条码包括的信息和第八校验和数字7位数字。 通过将数字分别乘以3和1,将结果相加,然后从下一个10的倍数中减去,来计算校验和。 例如,给定数字2103498: Digit: 2 1 0 3 4 9 8 Multiplier: 3 1 3 1 3 1 3 Result: 6 1 0 3 12 9 24 这些结果数字的总和为55,所以校验和数字为60-55 = 5 挑战 给定一个8位条形码,您的任务是验证它是否有效-如果校验和有效,则返回真实值,否则返回false。 您可以采用以下任何形式的输入: 长度为8个字符的字符串,代表条形码数字 8个整数的列表,条形码的数字 一个非负整数(您可以假设前导零而不给出任何前导零,即1= 00000001,或请求输入中给出零) 禁止计算EAN-8校验和的内置函数(即,使用前7位数字并计算最后7位数字)。 这是代码高尔夫球,因此最短的程序(以字节为单位)获胜! 测试用例 20378240 -> True 33765129 -> True 77234575 -> True 00000000 …

30
这个数字是数字吗?
挑战 甲纯位数是一个非负整数,其位数都相等。 创建一个函数或完整程序,该函数或完整程序将单个整数作为输入,并且如果输入的数字是以10为底的repdigit,则输出真实值,否则输出false。 输入保证为正整数。 您可以不受限制地接受并使用输入作为10进制的字符串表示形式。 测试用例 这些都是1000以下的位数。 1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999 可以在OEIS上找到更大的列表。 获奖 以字节为单位的最短代码获胜。这并不是说不欢迎用冗长的语言回答。

30
Notcalc(计算错误的答案)
目标: 给定两个自然数(整数从0到无穷大),输出一个不是这些数之和的数字,而是一个自然数。 解决方案示例(TI基础): A+B+1 not(A+B) 无效的解决方案: A+B-1(对于输入0,0,它返回-1,这是不自然的) "ABC"(ABC不是数字) 笔记: 输出必须始终是两个自然数之和(实际上只是一个自然数) -1,undefined,infinity,NaN和错误消息不自然数。就我们的目的而言,0是自然的(尽管并非所有数学家都同意)。

30
让我们减少单调
...但是嘿,不必太严格。 给定严格正整数的非空数组,请确定其是否为: 单调严格减少。这意味着每个条目都严格小于上一个条目。 单调不增加,但不严格减少。这意味着每个条目都小于或等于前一个条目,并且该数组不属于上述类别。 以上都不是。 请注意以下特殊情况: 具有单个数字的数组是单调严格递减的(很明显如此)。 重复相同编号的数组是单调非递增的,但不是严格递减的。 规则 您可以提供程序或功能 输入可以采用任何合理的格式:数组,列表,数字用空格分隔的字符串,... 您可以分别为三个类别选择任何三个一致的输出。例如,输出可以是数字0,1,2; 或字符串1 1,1 0空字符串。 以字节为单位的最短代码获胜 测试用例 单调严格递减: 7 5 4 3 1 42 41 5 单调不增加,但不严格减少: 27 19 19 10 3 6 4 2 2 2 9 9 9 9 以上都不是: 1 2 3 2 10 9 8 7 …

24
这是Loeschian号码吗?
正整数k是Loeschian数,如果 k可以表示i*i + j*j + i*j为i,j整数。 例如,第一正Loeschian号码为:1(i=1,j=0); 3(i=j=1); 4(i=2,j=0); 7(i=2,j=1); 9(i=-3,j=3); ...注意i,j对于给定k的不是唯一的。例如,9也可以与产生的i=3,j=0。 这些数字的其他等效特征是: k可以表示i*i + j*j + i*j为i,j非负整数。(对于每对整数i,j都有一对给出相同值的非负整数k) 有一组k连续的六边形在六边形网格上形成网格化(请参见k = 4和的插图k = 7)。(由于这个属性,这些数字可在移动蜂窝通信网络中找到应用。) 在序列的OEIS页面中查看更多特征。 挑战 给定一个正整数,如果它是Loeschian数,则输出真实结果,否则,则输出虚假结果。 程序或函数应处理(例如不到一分钟)最多达1000或数据类型限制的输入。 代码高尔夫。最短的胜利。 测试用例 以下数字应输出真实结果: 1, 4, 7, 12, 13, 108, 109, 192, 516, 999 以下数字应输出虚假结果: 2, 5, 10, 42, 101, 102, 128, 150, 501, …
33 code-golf  math  number  number-theory  decision-problem  code-golf  kolmogorov-complexity  code-golf  sequence  code-golf  path-finding  chess  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  math  arithmetic  code-golf  code-golf  number  code-golf  geometry  code-golf  math  code-golf  code-golf  kolmogorov-complexity  alphabet  code-golf  regular-expression  hexagonal-grid  king-of-the-hill  path-finding  java  code-golf  string  sorting  code-golf  string  grid  code-challenge  compression  code-golf  random  code-golf  sequence  arithmetic  code-golf  number  grid  tiling  code-golf  tips  code-golf  sequence  number-theory  recursion  code-golf  string  grid  code-golf  math  number  combinatorics  permutations  string  code-challenge  code-golf  sequence  number-theory  subsequence 

29
它是前缀代码吗?
在信息论中,“前缀代码”是一个字典,其中所有键都不是另一个的前缀。换句话说,这意味着没有一个字符串以其他任何字符串开头。 例如,{"9", "55"}是前缀代码,但{"5", "9", "55"}不是。 这样做的最大优点是,可以将编码的文本记下来,并且它们之间没有分隔符,并且仍然可以唯一地解密。这在诸如Huffman编码之类的压缩算法中得到了体现,该算法始终会生成最佳的前缀代码。 您的任务很简单:给定一个字符串列表,确定它是否是有效的前缀代码。 您的输入: 将是任何合理格式的字符串列表。 仅包含可打印的ASCII字符串。 将不包含任何空字符串。 您的输出将是一个true / falsey值:如果是有效的前缀代码,则为True,否则为falsey。 这是一些真实的测试用例: ["Hello", "World"] ["Code", "Golf", "Is", "Cool"] ["1", "2", "3", "4", "5"] ["This", "test", "case", "is", "true"] ["111", "010", "000", "1101", "1010", "1000", "0111", "0010", "1011", "0110", "11001", "00110", "10011", "11000", "00111", "10010"] 以下是一些错误的测试案例: ["4", "42"] …

9
分形烟雾序列
介绍 A229037有一个非常吸引人的情节(至少在前几个条款中): 有一个猜想,它可能确实具有某种分形性质。 如何构造此序列? a(1) = 1, a(2) = 1然后为每个n>2变量定义一个最小的正整数,a(n)这样对于每个算术3项n,n+k,n+2k索引序列,该序列的对应值a(n),a(n+k),a(n+2k)就不会算术序列。 挑战 给定一个正整数n作为输入,输出第一n项a(1), ... , a(n)此序列。(采用任何合理的格式。可能的前导/培训字符/字符串无关。) 有一些片段可用于生成此序列,但我认为其他方法可能更适合/更适合某些语言。 请让我们知道您的程序如何工作。如果您遇到一个特别有效的算法,您可能也想提一下,因为它可以在更短的时间内绘制出更多的序列项。 前几个测试用例: 1, 1, 2, 1, 1, 2, 2, 4, 4, 1, 1, 2, 1, 1, 2, 2, 4, 4, 2, 4, 4, 5, 5, 8, 5, 5, 9, 1, 1, 2, 1, 1, …

30
n到b的下一个幂有多远?
设n和b为大于的正整数1。 输出n到的下一个幂的距离b。 对于n=5和b=3,3from 的下一个幂5是9(3^2 = 9),所以输出是9 - 5 = 4。 对于n=8和b=2,2from 的下一个幂8是16(2^4 = 16),所以输出是16 - 8 = 8。请注意,在此示例n中2,这是的幂。 测试用例: n b output 212 2 44 563 5 62 491 5 134 424 3 305 469 8 43 343 7 2058 592 7 1809 289 5 336 694 3 35 324 …

30
将标准中的数字相加
考虑每行一个整数的流/文件。例如: 123 5 99 您的代码应输出这些数字的总和,即227。 输入格式严格为每行一个整数。例如,您不能假定输入作为整数数组在一行上。 您可以从STDIN中以文件名或具有您选择的名称的文件形式进行输入。您可以选择哪一个。不允许有其他获取输入的方法。 输入将包含至少一个整数。您可以假设所有整数均为非负数,并且它们的总和小于。232

12
产生帕斯卡的辫子
这是帕斯卡的辫子: 1 4 15 56 209 780 2911 10864 40545 151316 564719 1 3 11 41 153 571 2131 7953 29681 110771 413403 1542841 1 4 15 56 209 780 2911 10864 40545 151316 564719 我完全弥补了。据我所知,布莱斯·帕斯卡(Blaise Pascal)没有辫子,如果他这样做,那可能是由头发而不是数字制成的。 它的定义如下: 第一列1中间有一个。 第二列1的顶部和底部都有一个。 现在,我们在将数字放在中间或将数字的两个副本放在顶部和底部之间进行交替。 如果数字位于顶部或底部,则为两个相邻数字的总和(例如56 = 15 + 41)。如果您稍微倾斜头部,这就像是Pascal三角形中的一个台阶。 如果数字在中间,则它将是所有三个相邻数字的总和(例如41 = 15 + …

30
它是无和集吗?
如果集合中没有两个(不一定是不同的)元素在一起,则该集合是不求和的。 例如,{1, 5, 7}是无和的,因为所有成员都是奇数,并且两个奇数加在一起时总是偶数。在另一方面,{2, 4, 9, 13}不是免费求和,如任一2 + 2 = 4或4 + 9 = 13一起添加到该组的一个成员。 编写一个将集合作为输入的程序或函数,如果集合不加和,则输出True值,否则输出Falsy。 例子: Sum-free: {} {4} {1, 5, 7} {16, 1, 4, 9} Not sum-free: {0} {1, 4, 5, 7} {3, 0} {16, 1, 4, 8}

4
反转扫雷板
扫雷(Minesweeper)是一种流行的计算机游戏,您可能已经浪费了时间在游戏中,尝试根据每个非地雷单元具有多少个相邻地雷的提示来显示矩形网格中的地雷单元。如果您还没有玩过,请在这里进行。 关于扫雷网格(又称木板)的一个漂亮的数学事实是: 一个董事会及其补编具有相同的地雷总数。(证明) 这就是说,如果您拥有一个完全显示的扫雷网格,则该网格上所有数字的总和,即“ 地雷总数”,将等于该网格补码的地雷总数,即每个地雷都已被替换的网格一个非地雷,每个非地雷都被一个地雷取代。 例如,对于扫雷网格 **1.. 34321 *2**1 矿山总数为1 + 3 + 4 + 3 + 2 +1 + 2 +1 = 17。 网格的补充是 24*** ***** 3*44* 总共有我的2 + 4 + 3 + 4 + 4 = 17。 编写一个程序,以文本形式获取任意的扫雷网格,该网格*表示一个地雷,并1通过8表示与非地雷单元相邻的地雷数。您可以选择使用.或0或 (空格)来表示没有地雷邻居的像元。您可以假设输入网格将被正确标记,即每个非地雷单元将准确地表示正交或对角线紧邻其的地雷总数。 你的程序需要打印电网的补相同的格式(使用相同的.,0或 如您在输入拼音)。 以字节为单位的最短代码获胜。 除了编写程序,您还可以编写一个函数,该函数将输入网格作为字符串并打印或返回补码网格。 输入或输出中的尾随换行符很好,但除了构成网格的字符外,不应有其他字符。 您可以假设1×1的网格将是最小的输入。 测试用例 由于补数的补数是原始网格,因此可以交换所有输入和输出。网格也可以旋转以用于进一步的测试案例。 输入: …

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.