Questions tagged «math»

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

15
反复互惠
您需要做的是创建一个将小数作为输入的函数/程序,并输出重复取数字小数部分的倒数的结果,直到数字变成整数。 更具体地说,过程如下: 令x为输入 如果x是整数,则将其输出。 否则:x ← 1Fr a c(x)X←1个F[R一种C(X)x \leftarrow \frac{1}{\mathrm{frac}(x)}。回到2。 Fr a c(x)F[R一种C(X)\mathrm{frac}(x)是的小数成分XXx,并且等于X - ⌊ X ⌋X-⌊X⌋x - \left\lfloor x \right\rfloor。⌊ X ⌋⌊X⌋\left\lfloor x \right\rfloor是x的地板上,这是最大的整数小于XXx。 测试用例: 0 = 0 0.1 = 1/10 -> 10 0.2 = 1/5 -> 5 0.3 = 3/10 -> 10/3 -> 1/3 -> 3 0.4 …

10
旋转根
给定一个具有整数系数的非零多项式,并且其根在虚数和实线上,因此如果a是,则实在-a,则返回另一个多项式,其根旋转90度。 细节 多项式可以以任何合理的格式给出,例如作为系数列表。作为a且仅当-a为根的对称条件也强制旋转多项式也具有实数整数系数。 例子 在下文中,多项式被给出为单项式的降序系数列表。(即常数倒数)多项式x^2-1具有根{1,-1}。通过90°乘以i(虚数单位)来旋转它们,因此输出多项式的根应该{i,-i}为x^2 + 1。 Input / Output [1 0 10 0 -127 0 -460 0 576] [1 0 -10 0 -127 0 460 0 576] [1 0 -4 0] [1 0 4 0] [1] [1]

9
计算ELO等级预期分数
您的任务是计算某些游戏中两名玩家的预期获胜机会,每个玩家都有自己的ELO评分。玩家A有ELO R a,玩家B有ELO R b 玩家A的预期得分(E a)为:1 /(1 + 10 (R b -R a)/ 400)。玩家B(E b)有一个类似的方程:1 /(1 + 10 (R a -R b)/ 400)。 如果您想要一个更可复制的版本: 1 / (1 + 10^((a-b) / 400)) E a + E b应该等于1。 因此,玩家的分数是他们赢得比赛的预期机会(以十进制表示)。 您的程序/功能应采用2个输入,即玩家A的ELO和玩家B的ELO,并打印/返回它们各自以十进制格式获胜的机会。输出必须加一,并且您必须精确到至少5个小数位(0.00000)。小数点后5位后,如果两个输出仍加起来为1,则您的数字可能不正确。 例子: 1200 2100 -> 0.005591967 0.994408033 1 1 -> 0.5 0.5 …
11 code-golf  math 

1
帮助贝丝逃离沙漠
与其他载水难题类似,此挑战的独特方面使其完全不同。 贝丝位于沙漠中的一片绿洲。湖中有大量的水,但不幸的是只有X个水桶,每个水桶的水容量为Y升。 贝丝可以手里拿着2个水桶,但要生存,她每行驶一公里必须喝1升水。她还可以在中途留下一些水桶(水不会蒸发)。 挑战 找出公式,并写出最短的解决方案,该解决方案适用于X和Y的正整数值,并计算Beth可以从绿洲经过的最大距离。允许在桶之间移动水。 例 X = 3,Y = 5 贝丝(Beth)从绿洲离开1个完整的桶3KM,然后返回(有绿洲的最后一杯饮料) 贝丝(Beth)在3KM点带来了另一个满满的铲斗,现在那里有12L。 贝丝可以前进到6公里,并在桶中放4升水。 回到3KM点。她现在只有2升水可以回到绿洲。 加满水桶,行驶至6KM点。她现在有8升水。 一直到15KM点。 答案是:15 输入输出 您可以直接在代码中定义X / Y或从输入中读取。结果可以放在变量或输出中,以最短者为准。

18
斐波那契指数
对于此挑战,您将输出一些数字之和的结果。这些数字是多少?好吧,您将得到输入(a,b),它们是整数(正,负或零)a != b,,和a < b,并且a和b(包括它们)内的每个整数将根据斐波那契数具有指数。这很混乱,所以这里有个例子: Input: (-2, 2) Output: -2**1 + (-1**1) + 0**2 + 1**3 + 2**5 = -2 + -1 + 0 + 1 + 32 = 30 假设第一个斐波那契数由表示f(0),则公式为: a**f(0) + ... + b**f(b-a+1) 输入,处理,输出 为了阐明上述内容,以下是一些测试用例,输入的处理以及预期的输出: Input: (1, 2) Processing: 1**1 + 2**1 Output: 3 Input: (4, 8) …

2
六角坐标:极地直角坐标
Wikipedia谈到极坐标: 在数学中,极坐标系是二维坐标系,其中平面上的每个点由距参考点的距离和距参考方向的角度确定。 这似乎非常适合描述六角形网格。以以下六角形网格为例: A B C D E F G H I J K L M N O P Q R S 我们的参考点将是六边形('J')的中心,我们的参考角将是六边形('A')的左上角。但是,我们将根据从该点开始围绕六边形外部的顺时针台阶数(而不是角度)来描述角度。因此,我们将其称为“步数”而不是角度。 例如,“ C”在(2,2)处,因为它的半径为2(因为距中心“ J”有两个环),并且步数为2(从“ A”向前顺时针走了2个步) ')。类似地,“ O”位于(1、3),因为它距中心一圈,并且从“ E”(在参考角上)向前顺时针走了三步。 为了完整起见,“ J”位于(0,0),因为您需要0步和顺时针0步才能到达。 现在,您还可以使用笛卡尔坐标来描述六边形,但是由于偏移,这有点奇怪。就像极坐标一样,我们将中心设为(0,0)。每个空间也占据一个坐标,因此“ K”位于(2,0),而不是(1,0)。这会将“ A”置于(-2,2),将“ O”置于(1,-1)。 挑战 给定极坐标六边形坐标,以笛卡尔坐标输出相同的坐标。您可以采用这些坐标,并以任何合理的格式输出答案。这意味着您可以根据需要颠倒输入的顺序。这也意味着您可以将坐标输出为(Y,X),但是如果这样做,请在答案中提及这一点以避免混淆。 您不必处理负半径,但可能会遇到负角,或者角度超过六边形完整一圈。例如,您可能会收到(1,10)或(1,-2)作为输入。这些都将对应于我们先前的六角形中的“ N”。你不是要处理非整数输入。 样品IO #Polar #Cartesian (0, 0) (0, 0) (1, 2) (2, …

1
切换顺序
介绍 切换顺序的定义如下: 首先,n人们围成一圈站着(6在本例中)。 1 2 6 3 5 4 从人员开始1,将删除“选定”人员左侧的人员。 1 6 3 5 4 被删除的人可以“切换”删除方法: 如果被删除的人是偶数(在这种情况下就是这种情况),那么下一个被删除的人将在下一个“被选中”人的右边。 如果被删除的人是奇数,则下一个被删除的人将在下一个“已选择”人的左侧。 下一个选择的人也取决于先前删除的人。 如果被删除的人是偶数,则下一个选择的人将在前一个选择的人的右边。 如果被撤消的人是奇数,请参见上文,但将“正确”替换为“左侧”。 因此,下一个选择的人是6。 现在我们删除的人的权利6,这就是5: 1 6 3 4 因为5是奇数,所以被移走的人现在在左边。新选择的人是1。 现在,我们删除3: 1 6 4 我们继续此过程,直到剩下1个数字-在此示例中,最终数字为1。因此S(6) = 1。 前几个数字是: n | S(n) --------- 1 | 1 2 | 1 3 | 3 4 …

4
操纵网格!
简报 您是一个机器人,它在2D网格中沿北,南,东和西四个方向无限延伸。当给定一个数字时,您必须移动机器人,以便到达目标数字。 网格的工作方式如下: 您可以向4个方向移动:北,南,东或西。一旦移出某个单元格,就不允许您再次返回该单元格(如此有效,它已从地图上删除了)。 有一个“计数器”,该计数器1234567890(因此从1到2...一直到9,然后到0,然后再返回1),每次移动时都会改变。 您还有一个“值”,该值从0开始。 一旦向任意方向移动,就会根据您所移动的方向进行数学运算: 北:您的价值由计数器(value += counter)增加。 东:您的价值会因计数器(value -= counter)递减。 南:您的价值乘以计数器(value *= counter)。 西:您的价值除以计数器(value /= counter)。 除法是整数除法,因此5/2 -> 2。 您不可以被除以0。 例: 如果漫游器向北移动3次: 第一个“北”移动将计数器增加到1,并将其添加到值(现在为1)中。 第二个“北”移动将计数器增加到2,并将其添加到值(现在为3)中。 第三个“北”移动将计数器增加到3,并将其添加到值(现在为6)中。 最终值为6。 向北移动,然后再向南移动: 第一个“北”移动将计数器增加到1,并将其添加到值(现在为1)中。 第二个“向南”移动错误,因为机器人正在尝试继续移动的单元已删除(从第一个移动中删除)。 没有最终值,因为漫游器错误。 挑战 您的难题是,在给定数字的情况下,编写出适合机器人进入的方向的程序,以便使机器人的最终值等于该数字。 因此,如果数字为6,则有效的解决方案是: nnn (机器人连续向北移动3次)。 您的测试值为: 49445094, 71259604, 78284689, 163586986, 171769219, 211267178, 222235492, 249062828, 252588742, 263068669, 265657839, …

2
解释重复!
这项挑战是有关重复的两个挑战系列中的第一个。第二个即将到来。 在一种叫做重复的语言(我刚刚写的东西)中,包含一个无限的字符串12345678901234567890...,带有1234567890永远重复。 以下语法可用于输出数字: +-*/:这会将运算符插入重复数字的字符串中。 例子: +-> 1+2= 3(在和之间+插入一个)+12 +*-> 1+2*3= 1+6= 7(与上面相同,但现在使用两个运算符) /-> 1/2= 0(重复使用整数除法) //-> 1/2/3= 0/3= 0(重复使用带有多个减法和除法的“左关联”) 插入每个运算符时,除非有,否则它的左边有一位数字c(请参阅下文)。 c:与字符串中的下一位数字连接。 例子: c+-> 12+3= 15(c“继续” 1并将其与下一位数字串联起来2,形成12) +c-> 1+23=24 ccc -> 1234 ():用于处理数字的括号。 例子: (c+)*-> (12+3)*4= 15*4= 60(重复使用操作顺序) (c+)/c-> (12+3)/45= 15/45=0 (cc+c)/-> (123+45)/6= 168/6=28 s:跳过数字(从无限字符串中删除数字)。 s+-> 2+3= 5(s跳过1) csc- > 124(第一cconcats …

3
两个向量的线性组合
执行摘要 给定代表两个向量及其各自“权重”的输入,则产生的输出也代表这些向量的加权总和。 挑战 输入将包含以下字符的一行或多行: 正好出现一次数字0,它表示二维平面中的原点; 正好是另外两个数字(1-9;可以是或可以不是相同的数字),它们相对于原点的位置代表矢量,并且其值代表这些矢量的权重; 一些“背景字符”。求解器可以选择特定的背景字符;例如,我将选择“。” (主要是为了人类可读性)。或者,背景字符可以是任何看起来像空白的东西。 (求解器可以选择输入是单个多行字符串还是单行字符串数组。) 例如,输入 ....2 .0... ...3. 表示权重为2的坐标(3,1)处的向量,权重为3的坐标(2,-1)处的向量。 输出应与输入几乎相同,并进行以下更改: 由求解器选择的“结果字符”,将被添加到由输入矢量的加权和指定的位置(等效地,在输入矢量的适当线性组合的位置); 在同一张图片中,需要多少背景字符以适合原点,两个输入向量和输出向量。如果需要,可以包含额外的背景字符;唯一的限制是,如果背景字符是可见字符,则整个输出的形状必须是矩形,并且每个不代表矢量的字符都必须是背景字符。(如果将空格用作背景字符,则无需强制执行这些约束。) (通常,如果我们有一个权重为a的向量(v,w)和权重为b的第二向量(x,y),则它们的加权总和为a(v,w)+ b(x,y)=(av + bx,aw + by)。) 在前面的示例中,适当的线性组合为2 *(3,1)+ 3 *(2,-1)=(12,-1)。如果我们使用“ X”作为结果字符,那么输出看起来像 ....2......... .0............ ...3.........X 要么 ................ ...2............ 0............... ..3.........X... ................ ................ 通常的代码高尔夫评分:最短的答案(以字节为单位)获胜。 输入和输出示例 如果使用空格,则上面的输入看起来像 2 0 3 和输出看起来像 2 0 3 X 前导/尾随空格字符/行无关。如果读者看不见它们,那很好。(话虽如此,在其余示例中,我将回过头使用“。”作为背景字符,以使其更易于阅读。) …

6
最长算术子序列
给定一个非空的有限整数序列,返回最大长度的算术子序列。 如果有多个相同的最大长度,则可以返回它们中的任何一个。 定义: 一个算术序列是这样的序列a(1),a(2),a(3),a(4),...,例如,有一个恒定的c,使得a(m+1)-a(m) = c对于所有m。换句话说:两个后续项之间的差是恒定的。 给定一个序列,b(1),b(2),b(3),b(4),...一个子序列就是一个序列b(s(1)),b(s(2)),b(s(3)),b(s(4)),...,其中1 <= s(1),s(m) < s(m+1)对于所有m。换句话说:采用原始顺序并删除所需的任意多个条目。 例子 Input Output [4,1,2,3,6,5] [1,3,5] or [1,2,3] [5,4,2,-1,-2,-4,-4] [5,2,-1,-4] [1,2,1,3,1,4,1,5,1] [1,1,1,1,1] or [1,2,3,4,5] [1] [1] 一些较长的测试用例: Length: 25 Input: [-9,0,5,15,-1,4,17,-3,20,13,15,9,0,-6,11,17,17,9,26,11,5,11,3,16,25] Output: [15,13,11,9] or [17,13,9,5] Length: 50 Input: [35,7,37,6,6,33,17,33,38,30,38,12,37,49,44,5,19,19,35,30,40,19,11,5,39,11,20,28,12,33,25,8,40,6,15,12,27,5,21,6,6,40,15,31,49,22,35,38,22,33] Output: [6,6,6,6,6] or [39,33,27,21,15] Length: 100 Input: [6,69,5,8,53,10,82,82,73,15,66,52,98,65,81,46,44,83,9,14,18,40,84,81,7,40,53,42,66,63,30,44,2,99,17,11,38,20,49,34,96,93,6,74,27,43,55,95,42,99,31,71,67,54,70,67,18,13,100,18,4,57,89,67,20,37,47,99,16,86,65,38,20,43,49,13,59,23,39,59,26,30,62,27,83,99,74,35,59,11,91,88,82,27,60,3,43,32,17,18] Output: [6,18,30,42,54] or …

11
这些方块重叠吗?
给定两个正方形的左上角的坐标及其边长,确定正方形是否重叠。正方形包括顶部和左侧线条,但不包括底部和右侧线条。也就是说,一个点(a,b)位于边长为正方形且k位于(x,y)且仅当x <= a < x+k和时的正方形内y <= b < y+k。边长为0的正方形是简并的,此处将不考虑,因此k将为正。 与往常一样,所有标准规则均适用。输入和输出可以采用任何方便的形式,只要它是人类可读的并且没有预先计算即可。确保指定使用的输入格式。您的代码应采用六个数字,并且如果正方形重叠则输出真实,否则输出虚假。 测试用例 x1 y1 k1 x2 y2 k2 overlap? 1 1 1 0 1 1 false 0 0 3 1 1 1 true 1 1 1 0 0 3 true 0 0 3 2 1 2 true 0 0 2 1 …

15
m发生至少n次的概率
编写一个程序或函数,给定一个成功概率p,一个数n和多个试验m返回m次试验中至少 n次成功的机会。 您的答案必须精确到小数点后至少5位数字。 测试用例: 0.1, 10, 100 -> 0.54871 0.2, 10, 100 -> 0.99767 0.5, 13, 20 -> 0.13159 0.5, 4, 4 -> 0.06250 0.45, 50, 100 -> 0.18273 0.4, 50, 100 -> 0.02710 1, 1, 2 -> 1.00000 1, 2, 1 -> 0.00000 0, 0, 1 -> 1.00000 0, …

7
查找具有各种长度的循环的函数
的功能被说成具有一个长度的周期n如果存在一个X在其结构域,使得˚F Ñ(X)= X和˚F 米(X)≠X为0 <M <N ,其中,上标Ñ表示ñ - f的折叠应用。请注意,长度为1的循环是不动点f(x)= x。 您的任务是实现从整数到其自身的双射函数,该函数正好具有每个正长度n的一个周期。双射函数是一对一的对应关系,即每个整数都恰好映射到一次。具有一个长度为n的正好一个周期意味着正好有n个不同的数字x,对于0 <m <n,f n(x)= x且f m(x)≠x。 这是x = 0周围的此类函数的示例: x ... -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 ... f(x) ... 2 4 6 -3 -1 1 -4 0 -2 5 7 …

8
画一个phi三角形
澄清:基本上,你需要这个 欧拉的totient函数的名称为phi。 让我们尝试计算phi(8) 首先,向后列出所有数字8,且不包括0或以下 8 7 6 5 4 3 2 1 现在找出哪些数字与8不共享因数(1不计数),并#在其位置放置a 。 8 # 6 # 4 # 2 # 删除数字。 # # # # - 现在执行此操作,但是将输出串成三角形 9 88 777 6666 55555 444444 3333333 22222222 111111111 --------- 123456789 # 排除非要素共享数 9 8# 7## 6#66 5#### 4#4#4# 3##3##3 2#2#2#2# …

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.