Questions tagged «math»

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

16
谁最高?
N个孩子按一定顺序排列,没有两个孩子分享他们的确切大小。每个人只能将身高与其近邻比较。当老师大喊“如果你最高,举手”时,如果他们比两个邻居都高,他们就会高声喊叫,并且他们会同时举高声。如果只有一个人举手,他将获胜。如果不止一个举手,则将他们全部从该行中淘汰(保留其余孩子的顺序),然​​后重复该过程。 编写一个程序,该程序采用一组不同的整数(可以假定它们严格为正),并输出此游戏的获胜者。这是代码高尔夫球,因此最短的代码获胜。 示例(显示了中间阶段): 5 3 9 8 7→3 8 7→8 1 2 9 4→9 9 3 8 7 4 12 5→3 7 4 5 →3 4 →4 现任领导人: 果冻:17个字节[作者:Dennis♦] MATL:20个字节[作者:Luis Mendo] APL:28个字节[voidhawk] k:40个字节[Paul Kerrigan撰写] 还有一场Python之战。仍在等待更多的高尔夫语言出现。 我目前接受Dennis♦的回答-如果有新的获奖者,我将更新选择。

20
你圣诞节收到了多少礼物?
是的,多少,不是多少... 众所周知,大礼物比小礼物好得多。因此,礼物的价值应始终以总体积来衡量,而不是礼物的数量,重量甚至是组合价格。 由于不愿比较一个人得到的礼物数量,因此您不希望长篇幅的脚本在圣诞晚会上容易被他人看到和阅读。因此,您需要使脚本中的字节数最少。 您的任务很简单:创建一个程序,以任何合适的格式将尺寸列表作为输入,并输出礼物的总体积。每个礼物的尺寸可以是三个数字的集合,也可以是一个数字。如果输入为三个数字(L, W, H),则当前为长方体L x W x H。如果是单个数字(R),则表示当前半径为球形R。 规则: 它可以是完整程序或功能 输入可以是任何方便的格式 如果需要,一个球体可以用一个数字后跟两个零表示 长方体将始终具有所有非零尺寸。 输出应为单个十进制数 只要显而易见的答案是什么,就可以接受其他输出 输出必须在小数点后至少有两位数字 如果数字大于1000,则输出可以采用标准格式/科学计数法。 如果您的语言没有Pi常数,则答案应准确到9999.99。 例子: ((1,4,3),(2,2,2),(3),(4,4,4)) 197.0973 // (1*4*3 + 2*2*2 + 4/3*pi*3^3 + 4*4*4) (5) 523.5988 (5,0,0) 523.5988 排行榜 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以将旧分数保留在标题中,方法是将它们打掉。例如: ## Ruby, <s>104</s> <s>101</s> 96 …

30
我如何获得一个repdigit?
为了纪念我几个小时前第一次想到这个挑战时的代表人数: 像这样由一个数字重复组成的数字称为repdigits。Repdigits很有趣!每一个身体是,如果销售代表他们的用量是一个纯位数更幸福¹,但我是个急性子,所以你要帮我找出去一个纯位数的最快方式。 这是您的挑战: 鉴于代表的声誉正整数,输出他们需要代表最小量的增益,以获得一个纯位数。例如,在撰写本挑战时,用户Martin Ender有102,856个代表。最接近的代表数字是111,111,因此他需要获得:8255代表才能成为代表数字。 由于人们不喜欢丢失代表,因此我们将仅考虑非负变化。这意味着,例如,如果某人的成绩为12个代表,而不是损失1个代表,则解决方案是获得10个代表。这允许“ 0”为有效输出,因为拥有111个代表的任何人都已经在一个代表位。 输入和输出可以采用任何合理的格式,并且由于在任何Stack Exchange站点上不可能有少于1个代表,因此可以假定输入不小于1。 需要注意的一个角落: 如果用户的代表少于10个,则他们已经是一个代表,因此他们也需要为“ 0”。 测试IO: #Input #Ouput 8 0 100 11 113 109 87654321 1234567 42 2 20000 2222 11132 11090 存在标准漏洞,最短的解决方案以字节为单位!
32 code-golf  math  number 

7
牛顿法递归法
您的任务是使用牛顿法计算2的平方根-稍有扭曲。您的程序将使用牛顿法计算迭代,并输出后续迭代的源代码(必须能够执行相同的操作)。 牛顿的方法已在Wikipedia上进行了详尽的描述。 要使用牛顿法计算平方根2,您: 限定 f(x) = x^2 - 2 限定 f'(x) = 2x 定义x[0](初步猜测)= 1 限定 x[n+1] = x[n] - (f[n] / f'[n]) 每次迭代会将x [n]移到更接近于2的平方根。所以- x[0] = 1 x[1] = x[0] - f(x[0])/f'(x[0]) = 1 - (1 ^ 2 - 2) / (2 * 1) = 1.5 x[2] = x[1] …
32 code-golf  math  quine 

14
解决全球债务,规范高尔夫的方式
世界各国领导人开会并最终承认,解决全球经济困境的最佳方法(也是唯一的方法)是盘算彼此的欠款,并以巨额支票相互偿还。他们雇用了您(具有讽刺意味的是,以最低的合同价格聘请您)来找到这样做的最佳方法。 经过深思熟虑,并要求某人绘制一个简单的示例,他们提出了以下规范。 每个国家/地区均以其ISO 3166-1 alpha-2代码表示:US美国,AU澳大利亚,JP日本,CN中国等等。 将分类帐作为一系列国家分录和每个国家的欠款进行草拟。 每个国家/地区的条目均以其域ID开始,即冒号,其盈余/赤字有多少(十亿欧元),然后是分号,然后是逗号分隔的国家/地区列表,以及有多少(十亿欧元)欧元)。 如果一个国家不欠另一个国家,则在该分号分隔符之后不输入该国家的任何提述。 赤字表示为负数,盈余表示为正数。 值也可以是浮点数。 分类帐必须来自STDIN。分类帐的结尾由空白行上的回车符指示。提示必须传送到STDOUT。 分类帐的示例: Input: AU:8;US:10,CN:15,JP:3 US:14;AU:12,CN:27,JP:14 CN:12;AU:8,US:17,JP:4 JP:10;AU:6,US:7,CN:10 然后,系统计算出每个国家的欠款和欠款,并确定其盈余/赤字,例如对于非盟: AU = 8(当前盈余)-10(至美国)-15(至CN)-3(至JP)+12(来自美国)+8(来自CN)+6(来自JP)= 6 完成所有计算后,必须显示一个提示: Output: AU:6 US:-5 CN:35 JP:8 您的工作就是创建一个系统,该系统能够为任何数量的国家采用任何数量的分类帐分录,并能够确定在支付所有费用后每个国家有多少赤字/盈余。 最终测试是让您使用代码来解决以下测试案例中以下国家之间的债务。这些数字取自2011年6月的BBC新闻。(http://www.bbc.com/news/business-15748696) 出于练习的目的,我将其各自的GDP用作其当前的盈余...请记住,这严格是代码质量保证的一项练习...在此问题中,将不讨论全球经济解决方案...如果您想谈论经济学,我敢肯定SE中还有另一个子域可以处理它... US:10800;FR:440.2,ES:170.5,JP:835.2,DE:414.5,UK:834.5 FR:1800;IT:37.6,JP:79.8,DE:123.5,UK:227,US:202.1 ES:700;PT:19.7,IT:22.3,JP:20,DE:131.7,UK:74.9,US:49.6,FR:112 PT:200;IT:2.9,DE:26.6,UK:18.9,US:3.9,FR:19.1,ES:65.7 IT:1200;JP:32.8,DE:120,UK:54.7,US:34.8,FR:309,ES:29.5 IE:200;JP:15.4,DE:82,UK:104.5,US:39.8,FR:23.8 GR:200;DE:15.9,UK:9.4,US:6.2,FR:41.4,PT:7.5,IT:2.8 JP:4100;DE:42.5,UK:101.8,US:244.8,FR:107.7 DE:2400;UK:141.1,US:174.4,FR:205.8,IT:202.7,JP:108.3 UK:1700;US:578.6,FR:209.9,ES:316.6,IE:113.5,JP:122.7,DE:379.3 现在,成为世界的经济救星! 规则: 最短的代码胜出...这毕竟是代码高尔夫... 请提供主要测试用例的输出以及代码答案...
32 code-golf  math 

16
平衡三元转换器
有关挑战构想的功劳归@AndrewPiliser。他最初在沙盒中的提议被放弃了,因为他已经几个月没有活跃在这里了,所以我已经接受了挑战。 平衡三进制是非标准数字系统。这就像在数字的3倍的价值增加,因为你进一步去左边三元-所以100是9和1001是28。 但是,数字的值为-1、0和1而不是0、1和2 。(您仍然可以使用它来表示任何整数。) 对于此挑战,数字含义+1将被写为+,-1将被写为-,并且0是just 0。平衡三进制-不像其他数字系统那样使用数字前面的符号来取反它们-请参见示例。 您的任务是编写一个完整的程序,该程序将32位十进制带符号的整数作为输入并将其转换为平衡三进制。不允许任何类型的内置基本转换函数(Mathematica可能有一个...)。输入可以是标准输入,命令行参数等。 前导零可能出现在输入中,但不会出现在输出中,除非输入为0,在这种情况下,输出也应该为0。 例子 这些是从平衡三进制到十进制的转换;您将不得不进行另一种转换。 +0- = 1*3^2 + 0*3^1 + -1*3^0 = 9 + 0 + -1 = 8 +-0+ = 1*3^3 + -1*3^2 + 0*3^1 + 1*3^0 = 27 + -9 + 0 + 1 = 19 -+++ = -1*3^3 + 1*3^2 + …

30
计算Adler-32校验和
背景 Adler-32是Mark Adler在1995年发明的32位校验和,它是被广泛使用的zlib库的一部分(也由Adler开发)。Adler-32不像32位循环冗余校验那样可靠,但是–至少在软件中–它更快,更容易实现。 定义 令B = [b 1,,b n ]为字节数组。 B的Adler-32校验和定义为low + 65536×high的结果,其中: 低:=(((1 + b 1 +⋯+ b n)mod 65521) 高:=((((1 + b 1)+(1 + b 1 + b 2)+⋯(1 + b 1 +⋯+ b n))mod 65521) 任务 给定一个字节数组作为输入,请遵循以下条件计算并返回其Adler-32校验和。 您可以将输入作为字节或整数数组或字符串。 在这两种情况下,输入中只会出现对应于可打印ASCII字符的字节。 您可以假设输入的长度将满足0 <length≤4096。 如果选择打印输出,则可以使用不超过256的正数。 如果选择一元,确保解释器可处理多达2个32 - 983056字节输出的机器上的RAM 16吉布。 禁止计算Adler-32校验和的内置函数。 …

19
敌对因子数
一些正整数的除数确实很讨厌彼此,并且他们不喜欢共享一个或多个公共数字。 这些整数称为敌对数数(HDN) 例子 Number 9566有4除数:(1, 2, 4783 and 9566 如您所见,其中没有两个共享相同的数字)。 因此,9566是一个ħ ostile d ivisor Ñ棕土 号码9567是不是HDN,因为它的除数(1, 3, 9, 1063, 3189, 9567)具有一些共同的数字。 这是前几个HDN 1,2,3,4,5,6,7,8,9,23,27,29,37,43,47,49,53,59,67,73,79,83,86,87,89,97,223,227,229,233,239,257,263,267,269,277,283,293,307,337... 任务 上面的列表继续,您的任务是找到第n个 HDN 输入值 n从1到的正整数4000 输出量 该nth HDN 测试用例 这是一些1索引测试用例。 请说明您在答案中使用的索引系统,以避免造成混淆。 input -> output 1 1 10 23 101 853 1012 26053 3098 66686 4000 85009 这是代码高尔夫球,因此以字节为单位的最低分数获胜。 …

21
球体上的随机点
挑战 编写一个程序或函数,该程序或函数不输入任何内容,并在理论上均匀的随机方向上输出长度为的向量。111 这等效于所描述的球面上的随机点x2+y2+z2=1x2+y2+z2=1x^2+y^2+z^2=1 导致这样的分布 输出量 从理论上均匀的随机分布中得出三个浮点数,方程满足精度极限。x2+y2+z2=1x2+y2+z2=1x^2+y^2+z^2=1 挑战备注 理论上,随机分布必须是均匀的。也就是说,如果将伪随机数生成器替换为实数中的真实RNG ,则会导致球体上点的均匀随机分布。 从均匀分布中生成三个随机数并将它们归一化是无效的:将会对三维空间的各个角产生偏差。 同样,从均匀分布中生成两个随机数并将其用作球面坐标也是无效的:向球体的极点会产生偏差。 适当的均匀性可以通过算法实现,这些算法包括但不限于: 根据附近的正态(高斯)分布生成三个随机数,和并将其标准化。 xxxyyyzzz000 实施实例 根据范围内的均匀分布生成三个随机数,和xxxyyyzzz(−1,1)(−1,1)(-1,1)。通过l = √计算向量的长度l=x2+y2+z2−−−−−−−−−−√l=x2+y2+z2l=\sqrt{x^2+y^2+z^2}。然后,如果l>1l>1l>1,则拒绝该向量并生成一组新的数字。否则,如果l≤1l≤1l \leq 1,标准化载体并返回结果。 实施实例 生成两个随机数iii和jjj从均匀的范围内分布(0,1)(0,1)(0,1)并将其转换为球面坐标,像这样:θϕ=2×π×i=cos−1(2×j−1)θ=2×π×iϕ=cos−1⁡(2×j−1)\begin{align}\theta &= 2 \times \pi \times i\\\\\phi &= \cos^{-1}(2\times j -1)\end{align}因此可以通过 x计算xxx,yyy和zzzxyz=cos(θ)×sin(ϕ)=sin(θ)×sin(ϕ)=cos(ϕ)x=cos⁡(θ)×sin⁡(ϕ)y=sin⁡(θ)×sin⁡(ϕ)z=cos⁡(ϕ)\begin{align}x &= \cos(\theta) \times \sin(\phi)\\\\y &= \sin(\theta) \times \sin(\phi)\\\\z &= \cos(\phi)\end{align} 实施实例 在您的答案中提供您正在使用的算法的简短描述。 在MathWorld上阅读有关球体点拾取的更多信息。 输出示例 [ 0.72422852 -0.58643067 …

10
查找Rationals的点积
我在朋友家吃晚饭,他们提出了“素数向量空间”的想法。在此空间中,将正整数表示为向量,以使向量中的第n个元素是第n个素数除以该数目的次数。(请注意,这意味着我们的向量具有无限数量的项。)例如20为 2 0 1 0 0 0 ... 因为它的质因子分解是2 * 2 * 5。 由于素因数分解是唯一的,所以每个数字都对应一个向量。 我们可以通过成对添加向量来添加向量。这与将它们关联的数字相乘相同。我们还可以进行标量乘法,这类似于将相关数提高为幂。 问题在于该空间实际上不是矢量空间,因为没有逆。如果继续进行加和逆运算并关闭向量空间,我们现在可以将每个正有理数表示为向量。如果我们保留向量加法表示乘法的事实。那么自然数的倒数就是它的倒数。 例如,数字20具有向量 2 0 1 0 0 0 ... 因此,1/20是其倒数 -2 0 -1 0 0 0 ... 如果我们想找到与14/15之类的分数相关的向量,我们将找到14 1 0 0 1 0 0 ... 和1/15 0 -1 -1 0 0 0 ... 并通过执行矢量加法将它们相乘 1 …

30
2的幂和
挑战 给定一个整数输入x其中1 <= x <= 255,返回时总结给出了两种力量的结果x。 例子 给定输入: 86 您的程序应输出: 64 16 4 2 输入: 240 输出: 128 64 32 16 输入: 1 输出: 1 输入: 64 输出: 64 如果总和中没有确定的2的幂,则输出可能包含零。 例如,输入65可以输出0 64 0 0 0 0 0 1。 计分 这是代码高尔夫球,因此每种语言中最短的答案将获胜。
31 code-golf  binary  code-golf  sequence  integer  chess  code-golf  number  arithmetic  matrix  code-golf  code-golf  combinatorics  grid  set-partitions  code-golf  array-manipulation  graph-theory  code-golf  number  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  3d  code-challenge  restricted-source  printable-ascii  code-golf  board-game  code-golf  geometry  grid  code-golf  word-puzzle  code-golf  matrix  sorting  code-golf  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  code-golf  decision-problem  code-golf  math  number  arithmetic  restricted-source  code-golf  code-golf  number  integer  matrix  code-golf  date  code-golf  matrix  code-golf  sequence  combinatorics  chemistry  code-golf  array-manipulation  popularity-contest  code-golf  code-golf  natural-language  code-golf  number  integer  sorting  substitution  code-golf  string  number  date  encode  code-golf  decision-problem  code-golf  string  subsequence  code-golf  string  alphabet  code-golf 

30
我是一个自我号码吗?
一个自号(也称为哥伦比亚或Devlali号)是一个自然数,x其中的公式n + <digit sum of n> = x对任何自然数无解n。例如,21不是一个自数,n = 15结果为15 + 1 + 5 = 21。另一方面,20 是一个自己的数字,因为n找不到满足这种相等性的数字。 由于此定义引用数字总和,因此它取决于基数。出于此挑战的目的,我们将仅考虑基数为10的自身编号,即OEIS 中的序列A003052。二进制(A010061)和以100为基数(A283002)的自编号也经过计算。 挑战 给定一个正整数x作为输入,如果x以10为底的自数,则输出一个真值,否则输出一个假值。为了澄清真实值和虚假值,请参阅此主题的meta文章。 您可以编写完整的程序或函数,并且可以在任何常用通道上提供输入和输出。当然,标准漏洞是被禁止的。 这是代码高尔夫球,因此答案越短(以字节为单位)越好! 测试用例 真相: 1 3 5 7 9 20 31 86 154 525 虚假: 2 4 6 8 10 15 21 50 100 500 沙盒链接 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 …

4
一条链上的狗
我从阁楼的窗户向外望去,到邻居家的院子里。他们的狗被拴在院子中央的一个柱子上。狗在院子里跑来跑去,但总是在链的尽头,所以它最终在泥土中留下了痕迹。通常,这条轨道是完美的圆形,但是我的邻居的院子里还有其他一些杆子,狗的链子就被抓住了。每次狗链碰到一根杆时,狗都会绕着新的杆旋转,而无论链的长度如何,半径都会保持不变。由于极,狗和链条的宽度均为零(我的邻居是数学家),因此链条可以无限地绕杆子缠绕,而圆半径不会缩短。如果链条在其路径中,则狗也可以通过链条(但不能穿过项圈)。观察了一段时间后,我决定编写一些代码来模拟邻居的狗。该代码将获取狗被拴在其上的中心杆的位置,邻居院子中其他杆的位置,链的长度以及狗的起始位置,并输出一个图,以指示狗已经把草磨破的小路。您可以假定以下各项的任何组合都是常数(因此不将其作为输入): 狗拴在一起的电线杆的位置 链长 狗的起始位置 太阳正在升起,所以被窗户照亮的阁楼地板上的空间正在缩小,给我的编写代码的空间越来越少。请尽量减少代码的字节数,以便我有足够的空间在阁楼上草拟该代码。 测试用例 在这里,我假设那只狗从链条所在的极点(红点)向南3个单位开始0,0。为了清楚起见,我已经在极点处指示了点,您无需在输出中包括它们。 Poles at 1,2 -1,2 Poles at 0,.5 Poles at 0,1 1,1 -2,1 -1,-.5 Poles at 0,1 1,1

30
无限打印芝诺的二分悖论(1 /(2 ^ n))
维基百科:芝诺的二分法悖论 无限数量的数学家走进酒吧。第一个点啤酒。第二个人点半杯啤酒。第三个人点了四分之一的啤酒。酒保阻止了他们,倒了两杯啤酒,然后说:“你们都是白痴。” Reddit 在程序运行期间,请打印以下系列,每个项目的分母每次都乘以2: 1 + 1/2 + 1/4 + 1/8 + 1/16 + 1/32 + ... 随着n接近无穷大,该序列的总和也趋近2。 规则 不,您可能无法打印2。 您可能不会将其打印1/1为第一项。 您可以根据需要删除空格1+1/2+...或添加空格1 + 1 / 2 + ...。 由于流行的需求,您可以使用换行符代替空格作为分隔符。 您可以将附加.的加一个常数0s到分母如果需要的话。 “无限”表示没有不必要的延迟,并且尽可能地受当前(可变)系统规范的限制,但不受您当前语言的限制。 有标准漏洞。 这是代码高尔夫球,因此最短答案以字节为单位。

26
第一行和第一列的总和,然后第二行和第二列的总和……等等
以包含正整数的非空矩阵/数字数组作为输入。按此顺序返回第一行和第一列的总和,然后返回第二行和第二列的总和,直到没有更多行或列为止。 假设输入为: 2 10 10 2 4 9 7 7 2 9 1 7 6 2 4 7 1 4 8 9 然后输出应为: 45, 33, 16, 17 因为:2+9+1+7+10+10+2+4=45, 7+7+1+7+2+9=33, 6+4+2+4=16, 8+9=17。 测试用例: 测试用例采用以下格式: Input --- Output 5 --- 5 .......... 1 4 ---- 5 .......... 7 2 --- 9 .......... …
31 code-golf  math  matrix 

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.