Questions tagged «rational-numbers»

这一挑战涉及对有理数的操作,即那些可以表示为整数分数的数。如果有理数只是几种可接受的输入/输出格式中的一种,则不要使用此标记,而如果需要使用精确的有理算术,则不要使用此标记。

3
写有理数作为质数的因数比
注意:此挑战已发布在沙盒上。 介绍 这项挑战的灵感来自2009年Putnam B1,这是本科数学竞赛中的一个问题。问题如下: 证明每个正有理数都可以写成素数(不一定是素数)的阶乘乘积的商。例如, 挑战 您的挑战是采用一对相对质数为正的整数,它们代表正有理数(或仅是有理数本身)的分子和分母作为输入,并输出两个质数的列表(或数组等),以便输入的有理数等于第一个列表中素数阶乘的乘积与第二个列表中素数阶乘的乘积之比。 笔记 第一个列表和第二个列表中可能没有任何素数;但是,素数在任意一个列表中可能会出现多次。 可以假定每个输入(非严格地)在1到65535之间。但是,不能假设您需要输出的数字的阶乘将在此范围内。 输入和输出示例 以下是合法输入和输出的示例。 input=>output 10,9 => [2,5],[3,3,3] 2,1 => [2],[] 3,1 => [3],[2] 1,5 => [2,3,2],[5] (elements of a list may be in any order) 3,2 => [3],[2,2] 6,1 => [3],[] 输入(2,2),(0,3),(3,0),(3,6)和(1,65536)是非法输入(即,您的程序不需要对它们进行任何特定操作)。以下是一些非法输出的示例: 1,2 => [2],[2,2] (2 is in both returned lists) …

5
是否有更多的硬物或软物
与假设分析书的开头相切。 输入是一个由空格组成的矩形,如字符串,字符串列表等,其对象由#内部组成: ######## # # ######## ### #### ### #### ### 对象将始终是非相交,非接触的矩形。软对象的定义是#中间没有用填充的对象,而只是边界,而硬对象则是填充的对象。具有宽度或高度的对象<=2被认为是坚硬的。所有对象都是硬的或软的。 如果输入,输出中有更多的硬对象"Hard",如果较软,则输出"Soft",如果相等则输出"Equal"。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 这些情况不是全部输入,而是每个对象应表征的内容。实际输入将类似于问题顶部的ascii艺术。 硬 # #### ## ## ########## ########## ########## 柔软的 ### # # ### ################### # # # # # # ################### #### # # # # # # # # # # # # …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

30
分数混合不正确
分数混合不正确 在此挑战中,您将把带分数转换成不正确的分数。 由于不正确的分数使用较少的数字,因此您的代码将需要尽可能短。 例子 4 1/2 9/2 12 2/4 50/4 0 0/2 0/2 11 23/44 507/44 规格 您可以假设输入的分母永远不会为0。输入将始终采用x y/zx,y,z为任意非负整数的格式。您无需简化输出。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。

13
谢尔宾斯基层
首先,/\您可以通过在下面添加一条线来创建类似于Sierpinski三角形的图案,从而... 任何松散的分支/或\再次分裂为两个分支:/\。 分支的任何碰撞都将\/死,其下无任何东西(只有空格)。 重复这些规则将产生 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ etc... (ViHart的启发) 编写一个程序或函数,该程序或函数接受一个正整数N,并将此模式的前N行打印到stdout,且前导或尾随空格不超过所需数量。 例如,如果输入是1输出,则必须为 /\ 如果输入是2输出,则必须为 /\ /\/\ 如果输入是8输出,则必须为 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ /\ /\ /\ /\ /\/\/\/\/\/\/\/\ 等等。 字节最少的代码获胜。

12
有理数的LCM
一组数字的最小公倍数(LCM)A是最小整数b,使得b/a对于所有的整数的整数a在A。此定义可以扩展为有理数! 任务 找到最小的正有理数, b使得它b/a是输入中所有有理数的整数。 a 规则 禁止出现标准漏洞。 您可以在输入中分别使用分子和分母,但不能使用双精度数,浮点数等。 输入可能没有完全减少。 您可以将分母为的整数输入作为有理数1。 允许将有理数提供给LCM / GCD内置文件的提交是允许的,但不竞争。 测试用例 In: 3 Out: 3 In: 1/17 Out: 1/17 In: 1/2, 3/4 Out: 3/2 In: 1/3, 2/8 Out: 1 In: 1/4, 3 Out: 3 In: 2/5, 3 Out: 6 In: 1/2, 3/4, 5/6, 7/8 Out: 105/2 这是代码高尔夫球,因此使用最少字节的提交会获胜!

28
计算逆模量
任务: 输出for的值x,其中a mod x = b有两个给定值a,b。 假设条件 a并且b将始终为正整数 永远不会有解决方案 x 如果存在多个解决方案,请至少输出其中之一。 如果没有任何解决方案,则不输出任何内容或表明不存在任何解决方案。 允许内置(不像其他数学方法那样有趣) 输出始终是整数 例子 A, B >> POSSIBLE OUTPUTS 5, 2 >> 3 9, 4 >> 5 8, 2 >> 3, 6 6, 6 >> 7, (ANY NUMBER > 6) 8, 7 >> NO SOLUTION 2, 4 >> NO …
18 code-golf  math  number-theory  code-golf  number  integer  code-golf  string  code-golf  music  code-golf  arithmetic  array-manipulation  decision-problem  code-golf  math  rational-numbers  code-golf  code-golf  graphical-output  hardware  code-golf  math  number  code-golf  string  parsing  natural-language  code-golf  tips  brain-flak  code-golf  graph-theory  code-golf  number  polynomials  king-of-the-hill  code-golf  ascii-art  kolmogorov-complexity  animation  king-of-the-hill  code-golf  tips  code-golf  ascii-art  code-golf  string  array-manipulation  data-structures  code-golf  math  number  code-golf  string  base-conversion  binary  code-golf  decision-problem  graph-theory  code-golf  math  polynomials  code-golf  kolmogorov-complexity  physics  code-golf  sequence  number-theory  code-golf  math  integer-partitions  code-golf  array-manipulation  random  permutations  code-golf  string  decision-problem 

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 …

7
将分数转换为重复的小数
如果遇到这种挑战,几乎是两极对立的,我怀疑这会稍微容易一些。 您的任务是采用格式为2的两个整数a/b(形成一个有理数),然后精确输出十进制数。 例如,如果要输入1/3,它将输出: 0.33333333333333333 并且将持续打印3s直到时间结束,并带有可选的前导0。(如果且仅当您的语言不允许在同一行上打印时,您才可以每行打印一个字符。) 的行为x/0将是不确定的。对于看起来不重复的数字(例如说5/4),它实际上确实重复。以下两种形式均可以接受5/4: 1.25000000000000000 1.24999999999999999 (与整数相同,1.9999999或2.000000) 分数可能无法在其最简单的形式,和a或b可能是负的(注-a/b = -(a/b),-a/-b = a/b,a/-b = -a/b,和-.6249999是无效的,但是-0.6249999是可以接受的,但你仍然可以使用。

7
令人满意的舍入
令人满意的舍入 您知道在上科学课时需要四舍五入到2个无花果,但是您的答案是5.2501...?您应该四舍五入到5.3,但这太不令人满意了!通过四舍五入到5.3,您将得到0.05的整数,与0.1(四舍五入到的位值)相比,这是一个很大的数目!因此,请以令人满意的方式帮助我。 要以令人满意的方式进行舍入,必须在遇到的第一个数字处舍入会产生相对较小的误差-小于舍入时可能出现的最大误差的一半。基本上,您需要在遇到0、1、8或9时四舍五入。如果永远不会发生,请按原样返回输入。不要四舍五入到前导零或一个-只是让人感到不满意。 输入值 表示非负十进制数字的字符串或浮点值。 输出量 可以将十进制数字以字符串或浮点格式令人满意地舍入。 例子 Input -> Output 0 -> 0 0.5 -> 0.5 0.19 -> 0 0.8 -> 1 5.64511 -> 5.645 18.913 -> 20 88.913 -> 100 36.38299 -> 36.4 621 -> 620 803.22 -> 1000 547.4726 -> 547.4726 这是一个代码挑战,所以最短的代码胜出!

8
将百分比转换为“简单”比率
您经营着一个政治网站,并且确定与以百分比(“ 71%” )表示的选举时相比,赢得选举或失败选举的机会与比例(“ 7 分之 5”)对人们有更好的直觉理解。)。 但是,您也不想显示诸如“ 82中的58”之类的令人迷惑的比率,即使它们不太精确,也希望它们更容易理解。 因此,给定一个介于0.1%和99.9%之间的百分比,请使用以下规则返回最接近的“易于理解”比率“ x in y ”: 大多数值(请参见下面的异常)应返回最接近的比率,即10或更低。55%的用户应返回“ 5 in 9”,而不是“ 11 in 20”。 比率应降至最低水平。65%的用户应返回“ 2 in 3”,而不是“ 4 in 6”。 小于10%的值应返回“ n中的1 ”的最接近比率,其中n是(10,12,15,20,30,40,50,60,70,80,90,100)中的一个。例如,6%应返回“ 15分之一”。 超过90%的值应返回最接近的比率,形式为“ n-1 in n ”,其中n是(10,12,15,20,30,40,50,60,70,80,90,100)中的一个。例如,98.7%应该返回“ 79 in 80”。 小于1%的值应返回“ <100分之一 ” 超过99%的值应返回“ > 99 in 100 ” 或者,换一种方式考虑,您的程序应该从以下可能的输出中返回最接近的比率(为方便起见,我将它们的近似值包括在内): <1 …

1
当子弹相撞
这项挑战是基于我不久前在一本书中读到的一个谜语,我在这里再次发现了这个谜语。这是关于每秒以不同速度从枪上发射的子弹永远沿直线传播。当一颗子弹击中另一颗子弹时,两者都被完全摧毁。(可以将所有“子弹”实例替换为“导弹”。) 任务 给定子弹速度的发射顺序列表,确定是否销毁了所有子弹。 规则 输入是一列非负整数,由任何定界符分隔,并在其前后带有一个可选字符。这些是有效的输入:1 2 3 4 5 6和[1,2,3,4,5,6]。程序员做出选择。 如果至少一颗子弹可以永远存活,则输出真实值,否则输出虚假值。 子弹速度以每秒单位给出。 项目符号同时且连续地移动。 项目符号可能会在小数偏移处发生碰撞。 同时到达精确相同位置的多个子弹(无论是与原点的偏移量是整数偏移还是分数偏移)都相互碰撞。 例子 在这些图中,G表示枪,>子弹,*是子弹碰撞和爆炸的时间。 特鲁西 输入: 0 0123456789 Time 0 G> 1 G> 2 G> ... 输出: 1 输入: 0 0 0 0123456789 Time 0 G> 1 G* 2 G> 3 G> 4 G> ... 输出: 1 …

2
拒绝的好时机
设置 假设你给ñ保险丝,1≤ ñ ≤5,每一个都是一米长,其中每个保险丝具有的相关燃烧率ñ每米d小时。 保险丝可以在一端或两端点亮,然后在一端或两端熄灭,重新点亮,重新熄灭等,直到保险丝完全耗尽为止。您可以立即点亮和熄灭保险丝,并且可以观察到保险丝完全耗尽(烧毁)的确切时间。 保险丝不能切断,也不能在除其末端以外的任何地方点亮。 通过测量任意两个保险丝点亮/消耗事件之间的时间,这样的设置允许无限精确的计时系统。例如,给定两个保险丝,其每小时的燃烧速度为1米,则您可以精确地测量45分钟(3/4小时) 同时:在两端点亮第一个保险丝,在一端点亮第二个保险丝,并标记时间间隔的开始 消耗第一根保险丝的瞬间(30分钟后)点亮第二根保险丝的第二端 在消耗第二根保险丝的瞬间(15分钟后)标记时间间隔的结束 挑战 给定小时数t的分数,以及代表n个保险丝的确切烧毁率的n 个分数的集合,编写一个程序或函数,如果可以通过系统性地熔断保险丝来精确地测量t小时,则输出或返回真实值。否则为假值。 程序的输入可以是以下任意一项: 形式的命令行参数 TN/TD N1/D1 N2/D2 N3/D3 ... TN/TD N1/D1 N2/D2 N3/D3 ...读取stdin或等效形式的字符串 TN/TD N1/D1 N2/D2 N3/D3 ...作为函数参数传递的形式的字符串 ["TN/TD", "N1/D1", "N2/D2", "N3/D3", ...]作为函数参数传递的字符串数组 在所有情况下,t = TN/ TD,其中TN,TD∈[1,10000]。 同样地,在所有的情况下:燃烧速率为熔丝我 = Ñ 我 / d 我 = N<i>/ D<i>,其中N<i>,D<i>∈[1,10]∀ 我。 …

16
调和数列的精确部分和
挑战 给定一个正整数N,输出第一个N倒数的总和作为精确的分数,将其表示为一对整数,以一致的顺序表示分子和分母。 规则 输出必须准确。 输出应为一对整数,以一致的顺序表示分子和分母。 禁止使用非整数数字类型(内置或库)。 澄清/例外:当且仅当使用,计算和返回的所有值都是整数时,非整数数字类型才可以(例如,您的语言默认使用有理数,但您的答案中仅使用整数算术) 输出应尽可能减少。(3/2还可以,6/4不是) 禁止出现标准漏洞。 提交的内容至少应输入20个或此meta,以较高者为准。 测试用例 1: 1/1 2: 3/2 (1/1 + 1/2) 3: 11/6 (1/1 + 1/2 + 1/3) 4: 25/12 etc. 5: 137/60 6: 49/20 20: 55835135/15519504 56: 252476961434436524654789/54749786241679275146400 226: 31741146384418617995319820836410246588253008380307063166243468230254437801429301078323028997161/5290225078451893176693594241665890914638817631063334447389979640757204083936351078274058192000 测试用例生成(Python 3) import fractions def f(x): return sum(fractions.Fraction(1,i) for i in range(1,x+1)) …

25
混合分数等式
在小学,孩子们学习适当的分数,其中分子小于分母,因此分数的值小于一。后来,他们被教导有关分数值大于1的分数,以及两种不同的表达这些分数的方式:混合分数和不合适分数。 给定一个混合分数,请确定它是否等于将整数值和分子串联在一起的不正确分数。例如,对于输入1 3/4,不正确的分数为13/4。 测试用例 1 3/4 -> falsey 1 3/10 -> truthy 6 6/7 -> falsey 55 55/100 -> truthy 4 9/100 -> falsey 40 9/100 -> falsey 7 49/1000 -> falsey 9 1/2 -> falsey 999 999/1000 -> truthy 1 21/200 -> falsey 1 21/101 -> falsey 对于输入,您可以将整数部分和分数部分作为单独的输入,但不能将分数作为两部分作为输入,也可以不将其作为十进制值。如果不需要使用整数部分,可以删除它(不要将其作为输入)。

3
高尔夫小数
您的目标是编写一些代码,该代码将为输入分数输出最短的唯一十进制序列。分母相同的两个分数都不能具有相同的输出,尽管分母不同的分数可能具有相同的表示。 以2个整数作为输入,第一个是分子,第二个是分母。 例如: n d output ----- ------ 0 13: 0.00 1 13: 0.07 2 13: 0.1 3 13: 0.2 4 13: 0.30 5 13: 0.38 等等 3/13是唯一以13开头的分母为13的分数0.2,因此不需要其他数字。4/13和5/13两个下手0.3,所以需要另一个数字来区分它们。 您可以输出大于-1且小于1的数字,小数点前有零或无零,只要输出是一致的,即0.5和.5是相同的数字并且都有效。不允许其他前导零。如果必须使用尾随零来将输出与另一个值区分开,则必须显示尾随零。 您不得将任何数字都舍入为零。他们必须被截断。不得有前导或尾随空格。可能有一个结尾的换行符。 更多测试值: n d output ---------- ------ 0 1: 0 (this 0 may not be removed because there's no decimal point) …

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.