Questions tagged «math»

挑战涉及数学。还可以考虑使用更具体的标签:[数字] [数字理论] [算术] [组合] [图形理论] [几何] [抽象代数]。

30
总和
设(输入)n=42n=42n=42 然后除数是:1,2,3,6,7,14,14,21,42 平方除数:1,4,9,9,36,49,196,441,1764 求和(加法):2500 由于因此我们返回真实值。如果它不是理想的正方形,则返回虚假值。50×50=250050×50=250050\times 50=2500 例子 : 42 ---> true 1 ---> true 246 ---> true 10 ---> false 16 ---> false 这是代码高尔夫球,因此每种语言的最短代码(以字节为单位)获胜 感谢@Arnauld指出了序列:A046655

22
按数字对描述的内容排序
给定一个正整数,我们可以形成一个新的数字,该数字由成对的数字描述(对于带有奇数数字的数字,添加前导0)。 例如: 1234可以读为1 2、3 4s-因此,1234的输出为2444。 643的位数为奇数,因此添加前导零使其成为偶数。然后,将0643读取为:零6s,四个3s,因此输出为3333。 (这是OEIS A056967)。 任务:给定一个正整数数组,按升序对它们按数字对描述的值排序。导致相同值的输入数字之间的顺序无关紧要。 输入:正整数的数组/列表/集合。在输入前导零不会允许的,并输入作为数字/字符串/列表等。不允许-输入的语言应尽可能接近整数/数字类型。 输出:以上述方式排序的数组,以任何常用方式返回(函数返回值/ STDOUT /呼入void /等)。您可以单独打印它们,将它们以数字,字符串或列表形式返回数字。 测试用例 Input Output [19, 91, 2345, 2023] [19, 2023, 2345, 91] [25257, 725, 91, 5219, 146125, 14620512] [725, 5219, 14620512, 91, 146125, 25257] [123130415 3335 91 111111111 528 88] [528, 111111111, 123130415, 3335, 88, 91] [1 …

7
堆叠式数字楼梯
给定正整数和,如下所述输出列和行文本。^ h w ^ ^ hwwwHHhwwwHHh 第一行以11 0秒开始,第二行以10 1秒开始,第三行以9 2秒开始,依此类推,在第十行以2 9秒开始。在前十行中的每行上,在连续运行连续数字之后,第二个最低位出现两次,第二个最低位出现两次之后,此模式将永远重复。如果0出现s,则其后的数字始终为9s。 第十行下方的行与紧接在其上方的行相同,但向右移一行。如果新数字不位于其自身的另一个实例旁边,则它与最左上的数字相同。否则,它是下一个最高的数字(从9循环回0)。 前元素如下:11 × 1011×1011\times10 00000000000 11111111110 22222222211 33333333221 44444443322 55555544332 66666554433 77776655443 88877665544 99887766554 这是带有彩色文本的图像,以使图案更清晰。 如果您需要减少列数/行数,则只需裁剪以上文本即可。 如果您需要产生更多的列/行,则应扩展现有的楼梯。如果更多的列/行增加了连续数字的新阶梯,则应从整数中循环选择数字。因此对于输入,输出应为(15 ,13 )(15,13)(15,13) 000000000009988 111111111100998 222222222110099 333333332211009 444444433221100 555555443322110 666665544332211 777766554433221 888776655443322 998877665544332 099887766554433 009988776655443 100998877665544 这是带有颜色的文本图像: 规则 输出可以通过任何方便的方法给出。 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 如果愿意,可以返回行列表。 您可以根据需要返回2D数字数组或数字列表。 不允许出现标准漏洞。 …

7
尼姆乘法
背景 如果您进行大量代码打高尔夫球,则可能会意识到按位XOR操作。给定两个整数,它给出1两个输入不同的位中带有s的另一个整数。因此,例如1010 XOR 0011 = 1001。 事实证明,它在博弈论中非常有用,在游戏理论中,它被称为“零和”。如果你有两场比赛的总和(也就是,你让在一场比赛中同时移动),该值的位置是在每个单独的游戏的位置值的NIM总和。 但是我们可以更进一步。使用nim加法和适当的nim乘法定义,我们可以从非负整数形成一个字段。因此,挑战在于高尔夫nim乘法。 定义 Nim乘法遵循以下规则: Fermat 2次方n =(2 ^(2 ^ k))且任何较小数字的nim乘积为普通乘积。 费马2幂n的尼姆乘积本身为3n / 2。 尼姆乘法分布在尼姆加法上。 Nim乘法是可交换的和关联的(如nim加法)。 乘法身份为1(加性身份为0)。 可以将任何非负整数表示为2的不同幂的nim和,并且可以将2的任意幂作为不同的Fermat数的乘积,因此这足以为所有非负整数定义nim乘法。 例 那都是非常抽象的,所以让我们来看一个例子。我将+用来表示nim加法(XOR)和*nim乘法。 6 * 13 = (4 + 2) * (8 + 4 + 1) = (4 + 2) * ((4 * 2) + 4 + 1) …
17 code-golf  math 

1
数Mo环
循环是一个非常简单的代数结构。它是一个元组(G,+),其中G是一个集合,+是一个二元运算符G×G→G。即+从G中获取两个元素并返回一个新元素。还要求操作员满足两个属性 取消:对于每一个和b在ģ存在唯一的X和ÿ在ģ使得 a + x = b y + a = b 身份:有一个ê在摹使得对于每一个在摹 e + a = a a + e = a 如果您熟悉组的概念,您可能会注意到循环只是一个没有关联属性的组。 循环非常简单,因此人们喜欢添加更多规则以制作更有趣的新结构。一种这样的结构是穆方循环是一个循环,还满足以下四个标识的forall X,ÿ和ž在G ^ z + (x + (z + y)) = ((z + x) + z) + y ((y + z) + x) + z = …

6
删除第一个数字
我们都知道,只要有理数以十进制表示,结果要么是终止的,要么是(最终)周期性的。例如,以十进制表示41/42时,结果为 0.9 761904 761904 761904 761904 761904 761904 761904 ... 初始数字序列,0.9然后是761904一遍又一遍的序列。(对此0.9(761904),一种方便的表示法是括号括在重复数字的块中。) 您在此挑战中的目标是采用正有理数,删除重复序列中的第一个数字,然后返回结果有理数。例如,如果对41/42执行此操作,则得到 0.9 61904 761904 761904 761904 761904 761904 761904 ... 或0.9(619047)简称为101/105。 如果有理数具有一个终止的十进制扩展,例如1/4 = 0.25,则什么也不会发生。您可以将1/4 0.250000000...或视为1/4 ,0.249999999...但无论哪种情况,删除重复部分的第一位数字都不会改变数字。 细节 输入是一个正有理数,可以是代表分子和分母的一对正整数,也可以是(如果您选择的语言允许并且想要)某种有理数对象。 输出也是有理数,也可以是两种形式。如果结果是整数,则可以返回整数而不是有理数。 如果以一对数字作为输入,您可能会认为它们是相对质数的。如果产生一对数字作为输出,则必须使它们相对质数。 请注意,您要找到开始重复块的第一个数字。例如,可以将41/42写为,0.97(619047)但不会使2041/2100(带小数点扩展名0.97(190476))成为有效答案。 您可以假设在输入中,第一个周期数字在小数点后,使120/11= 10.909090909...无效输入:(其第一个周期数字可以视为0in 10)。您可以在此类输入上执行任何您喜欢的操作。 这是代码高尔夫:最短的解决方案获胜。 测试用例 41/42 => 101/105 101/105 => 193/210 193/210 => 104/105 104/105 => 19/21 1/3 …

3
求幂乘以加法
可以将2个整数之间的乘法简化为一系列加法运算,如下所示 3 * 5 = 3 + 3 + 3 + 3 + 3 = 5 + 5 + 5 求幂(将a增大到b)也可以简化为一系列乘法: 5 ^ 3 = 5 * 5 * 5 因此,可以通过创建乘法表达式将乘幂减少为一系列加法,然后减少为一系列加法。例如,5 ^ 3(5立方)可以重写为 5 ^ 3 = 5 * 5 * 5 = (5 + 5 + 5 + 5 …

21
对我矩阵的增量求和
背景 整数数组的增量是通过获取连续元素的差形成的数组。例如,[1, 2, 4, 7, 3, 9, 6]具有以下增量:[1, 2, 3, -4, 6, -3]。 现在,我们将整数矩阵的增量定义为每一行及其包含的每一列的增量。 举个例子: Row deltas: 1 2 3 4 │ => [1, 1, 1] 4 5 6 7 │ => [1, 1, 1] 7 1 8 2 │ => [-6, 7, -6] Column deltas (the matrix' columns have …

11
埃塞俄比亚乘法
这个问题的灵感来自这个答案。碰巧的是,我小时候曾经使用埃塞俄比亚乘法,但直到最近才知道该方法的名称。 埃塞俄比亚乘法是仅使用加法,加倍和减半对整数进行乘法的方法。 方法: 取两个数字相乘,然后将其写下两列的顶部。 在左列中,将最后一个数字重复减半,舍弃所有余数,然后将结果写在同一列中的最后一个下面,直到写入值1。 在右侧栏中,重复将最后一个数字加倍,然后将结果写在下面。将结果添加到与左列显示1相同的行时停止。 检查生成的表,并丢弃左列中的值是偶数的任何行。将右侧列中的值相加,得出将原始两个数字相乘得到的结果。 例如:17 x 34 17 34 将第一列减半: 17 34 8 4 2 1 将第二列加倍: 17 34 8 68 4 136 2 272 1 544 删除第一个单元格为偶数的行,我们将这些数字放在方括号中的右边,以实现此目的: 17 34 8 [68] 4 [136] 2 [272] 1 544 将右侧栏中的剩余数字相加: 17 34 8 [68] 4 [136] 2 [272] …

5
最快的可推算整数分解器
任务是找到一个复合数的重要因素。 在不超过140字节长的情况下,编写代码以尽可能快地找到复合数字的重要因素。输出应该只是您找到的因素。 您的代码可以采用任何方便的方式进行输入和输出,包括例如作为函数的参数。 列出所有因素的测试用例(您只需要输出一个) 187: 11 17 1679: 23 73 14369648346682547857: 1500450271 9576890767 34747575467581863011: 3628273133 9576890767 52634041113150420921061348357: 2860486313 5463458053 3367900313 82312263010898855308580978867: 264575131106459 311111111111113 205255454905325730631914319249: 2860486313 71755440315342536873 1233457775854251160763811229216063007: 1110111110111 1000000000063 1111111999999 1751952685614616185916001760791655006749: 36413321723440003717 48112959837082048697 在以下困难的测试案例中,我不会给您打分,这可能是您感兴趣的测试: 513231721363284898797712130584280850383: 40206835204840513073 12764787846358441471 得分了 您的分数是将以上所有测试用例分解的总时间,每个分解失败的惩罚为10分钟(均四舍五入到最接近的秒数)。您的代码也应该适用于其他整数,这不应该只是硬编码这些答案。 10分钟后,我将停止您的代码。 如果两个人获得相同的分数,则第一个答案将获胜。 限制条件 您的代码不能使用任何执行整数分解的内置函数或库函数。您可以假设输入少于256位。所有输入数字将是复合的。 我将如何计时? 我实际上将time ./myprog在Ubuntu系统上运行以进行计时,因此也请提供一个完整的程序供我运行,其中包括您定义的任何功能。 编译语言说明 在我的机器上,编译时间不得超过1分钟。 真的有可能吗? 如果您忽略空间限制,则可以在我的计算机上使用纯Python代码+ …

30
消失的元素
给定一个字符串S和一个索引列表X,S通过删除每个索引处的元素来进行修改,并将S结果作为的新值S。 例如,给定S = 'codegolf'和X = [1, 4, 4, 0, 2], 0 1 2 3 4 5 6 7 | c o d e g o l f | Remove 1 c d e g o l f | Remove 4 c d e g l f | Remove 4 c …
17 code-golf  string  array-manipulation  code-golf  string  ascii-art  code-golf  number  sequence  pi  code-golf  number  array-manipulation  code-golf  string  ascii-art  code-golf  math  number  game  code-golf  math  sequence  polynomials  recursion  code-golf  math  number  sequence  number-theory  code-golf  permutations  balanced-string  code-golf  string  ascii-art  integer  code-golf  decision-problem  hexagonal-grid  code-golf  ascii-art  kolmogorov-complexity  code-golf  number  code-golf  matrix  binary-matrix  code-golf  math  statistics  code-golf  string  polyglot  code-golf  random  lost  code-golf  date  path-finding  code-golf  string  code-golf  math  number  arithmetic  number-theory  code-golf  tetris  binary-matrix  code-golf  array-manipulation  sorting  code-golf  number  code-golf  array-manipulation  rubiks-cube  cubically  code-golf  grid  optimization  code-golf  math  function  code-golf  string  quine  code-golf  ascii-art  grid  code-golf  decision-problem  grid  simulation  code-golf  math  sequence  code-golf  path-finding  code-golf  ascii-art  grid  simulation  code-golf  number  whitespace  code-golf  sequence  code-golf  sequence  code-golf  sequence  integer  code-golf  math  game  code-golf  internet  stack-exchange-api  code-golf  sequence  code-golf  internet  stack-exchange-api  code-golf  math  factoring  code-challenge  sequence  polyglot  rosetta-stone  code-golf  string  browser  code-golf  date  code-golf  base-conversion  code-challenge  cops-and-robbers  hello-world  code-golf  cops-and-robbers  hello-world 

21
其他事实!
在数学中,由n!表示的非负整数n的阶乘,缩短的“事实” 。是所有小于或等于n的正整数的乘积。例如5!是1 * 2 * 3 * 4 * 5 = 120 根据惯例,空乘的0阶乘为1。 这些是我们习惯的常规事实。让我们添加一些替代方法: 阶乘(上面定义) 双阶乘:n!= 1 + 2 + ... + n 三重因子:n!= 1-(2-(3-(...-n)))...) 四倍阶乘:n !!!! = 1 /(2 / /(3 ... / n)))...)。注意:这是浮点除法,而不是整数除法。 挑战 取一个非负整数输入n,紧跟着1到4个感叹号。输入看起来(完全)像这样:0!,5!,132!还是4个!!!。抱歉,在此挑战中,您可能不会采用灵活的输入格式。 输出量 输出应该是任何方便格式的结果。四阶阶乘的结果必须在小数点后至少2位,除了0 !!!! = 0。 测试用例: 0! = 1 1! = 1 2! …

25
一个简单的模式
输入: 您选择的输入格式中的两位数字(我们称它们为m和n)和两个字符(我们称其为a和b)。 输出: 对于演练,请假装m=2, n=5, a='a', b='b'。 您的输出将是根据四个输入构建的字符串。让我们result用value 调用字符串""。首先,连击a到result m时间,所以串连a到result 2倍。result现在等于aa。其次,连击b到result m时间,所以串连b到result 2倍。result现在等于aabb。最后,如果结果已经比更长n,请截断result它,使其具有length n。否则,继续交替使用m的长度运行a,并b直到result有长度n。最终result是aabba,它有长度5。 测试用例: Input: m = 2, n = 4, a = A, b = B Output: AABB Input: m = 3, n = 8, a = A, b = B Output: AAABBBAA Input: m = 4, n …
17 code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

12
没有免费的午餐
...或者在那里? 您的挑战是解析我的午餐账单,其中包含基本价格,小费,折扣,优惠券和其他费用,并找出我的午餐是否在$ 0或以下。如果这是输入: 12.34 15 tip 25 discount 1.5 extra 2 coupon 那么输出可能是false。运作方式如下: 12.34 是底价。 15 tip表示将总数增加15%。 25 discount表示从总数中减去25%。 1.5 extra表示将总数加1.5。 2 coupon表示从总数中减去2。 可能有任何数量的小费,折扣,优惠券和其他功能,但始终会有一个基本价格。 然后我们(12.34 * 1.15) * 0.75 + 1.5 - 2为10.14 做输出。10.14大于0,因此我们输出false。我的午餐不是免费的。 规则 数 tip手段添加数%至总。 数字 discount表示从总数中减去数字百分比 数字 extra表示将数字加到总数中 数字 coupon表示从总数中减去数字 另一个例子: 10 20 tip 20 discount 2 …

8
可视化欧几里得算法
欧几里得算法是用于计算两个正整数的最大公约数(GCD)的广为人知的算法。 算法 为解决这一挑战,算法描述如下: 将两个输入显示为某个字符的相邻行, 例如的输入3,4可以由相邻行000和0000 将length(short_line)较长行中的第一个字符转换为另一个字符,- 现在说看起来像000和---0 删除length(short_line)较长行中的第一个字符。 现在000,0 重复步骤2和3,直到两个具有相等的长度,使用较短和较长的线在每次迭代之后,例如 000,0 -00,0 00,0 -0,0 0,0 您可以选择是在此处停止还是继续迭代,然后将其中一行转换为空行。 这些步骤中的每个步骤之间应间隔0.3秒至1.5秒。 挑战 编写一个程序,给定两个自然数作为输入,它会创建一个输出,该输出看起来与上述算法的输出完全相同。您可以使用其他非空白打印的ASCII字符比0和-,但要一致,仅使用两个字符。如果输出(包括时序)与上述算法产生的输出完全相同,您也可以使用其他算法。 例子 这是input的示例24,35,它们是互质数,因此它们的GCD为1。 这是带有16,42GCD 2的input的示例。 规则 这是一个代码高尔夫球,因此最短字节获胜 适用标准漏洞 您可以假设输入为正十进制整数 除非您使用sed,Retina,///等,否则您可以使用一元 澄清说明 代表数字的线需要保持其原始顺序,即,在所有后续帧中,第一个显示的“框架”的第一和第二行分别必须是第一和第二行。 算法结束后,不应再出现其他可见实体。但是,这也意味着如果确保最后一个“帧”显示的时间至少与消隐之前所有其他帧的显示时间相同,则可以将行消隐。

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.