Questions tagged «rational-numbers»

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

18
相似形状
相似的数字 两个矩形相似,如果他们双方的比例是相同的。 考虑这两个矩形;一个高5行,宽11个字符的矩形: =========== =========== =========== =========== =========== 以及一个高10行,宽22个字符的矩形: ====================== ====================== ====================== ====================== ====================== ====================== ====================== ====================== ====================== ====================== 这些形状相似,因为它们的边的比例相同。正式地说(hhh是最短的一面,www是最长的一面): h1w1=h2w2h1w1=h2w2 \frac{h_1}{w_1} = \frac{h_2}{w_2} 您也可以这样做: h1h2=w1w2h1h2=w1w2 \frac{h_1}{h_2} = \frac{w_1}{w_2} 挑战 编写一个程序或函数,该程序或函数采用一个“主要”矩形和一些“其他”矩形,并打印“其他”中的哪些类似于“主要”。 输入 形状和形状列表。每个形状由2个非零正整数组成,分别表示矩形的宽度和高度。例如,这: (4,2), (3,9) 表示两个矩形,分别是4x2和3x9。但是,您可能希望输入的确切格式。 输出 “其他”形状的索引类似于“主要”形状。您可以选择索引是基于0还是基于1,以及输出的确切格式和顺序。 样例程序 在Python中: main = eval(raw_input()) # The main rectangle. rects = eval(raw_input()) …

21
将重复的小数转换为分数
这个问题不必仅适用于终止小数-重复的小数也可以通过算法转换为分数。 您的任务是制作一个程序,该程序将重复的小数作为输入,并输出产生该小数扩展的相应分子和分母(以最低的条款)。大于1的分数应表示为不正确的分数,例如9/5。您可以假设输入为正。 重复的小数将以以下格式给出: 5.3.87 重复第二个点之后的所有内容,如下所示: 5.3878787878787... 您的程序将输出两个代表分子和分母的整数,并用斜杠分隔(如果不输出纯文本,则为您语言的等效形式): 889/165 请注意,终止小数点在第二个点之后将没有任何内容,而没有非重复小数部分的小数点将在两个点之间没有任何内容。 测试用例 这些测试用例涵盖了所有必需的极端情况: 0..3 = 1/3 0.0.3 = 1/30 0.00.3 = 1/300 0.6875. = 11/16 1.8. = 9/5 2.. = 2/1 5..09 = 56/11 0.1.6 = 1/6 2..142857 = 15/7 0.01041.6 = 1/96 0.2.283950617 = 37/162 0.000000.1 = 1/9000000 0..9 = 1/1 …

23
ASCII艺术八边形
给定输入整数n > 1,输出边长由n字符组成的ASCII八角形。请参阅以下示例: n=2 ## # # # # ## n=3 ### # # # # # # # # # # ### n=4 #### # # # # # # # # # # # # # # # # #### n=5 ##### # # # # # # …
22 code-golf  ascii-art  code-golf  geometry  code-golf  balanced-string  code-golf  cops-and-robbers  code-challenge  cops-and-robbers  code-golf  code-golf  random  cryptography  code-golf  array-manipulation  number  code-challenge  integer  code-golf  math  integer  code-golf  math  math  parsing  image-processing  test-battery  math  number  combinatorics  fastest-code  code-golf  code-golf  math  number-theory  rational-numbers  polynomials  code-golf  math  geometry  code-golf  code-golf  number-theory  primes  factoring  code-golf  restricted-source  code-golf  string  decision-problem  counting  code-golf  math  sequence  fibonacci  code-golf  array-manipulation  counting  code-golf  array-manipulation  number-theory  code-golf  array-manipulation  code-golf  random  code-golf  string  hexadecimal  code-golf  string  code-challenge  sorting  code-golf  number  floating-point  code-golf  sorting  code-golf  decision-problem  fibonacci  code-golf  number  combinatorics  code-golf  string  code-golf  math  code-golf  electrical-engineering  code-golf  javascript  code-golf  base-conversion  code-golf  array-manipulation  matrix  binary-matrix  code-golf  kolmogorov-complexity  python  perl  ruby  code-golf  number  code-golf  optimization  integer-partitions  code-golf  string  code-golf  ascii-art 

24
ogl-edocf挑战
输入项 一个非空的字符串,由范围内的ASCII字符组成。[ 32..126 ][32..126][32..126] 输出量 通过对输入字符串进行连续旋转来获得输出。 对于[a-zA-Z]输入字符串中的每个字母(),从左到右: 如果字母是大写字母,请将其前面的所有字符向左旋转一个位置 如果字母是小写字母,请将其前面的所有字符向右旋转一个位置 例 输入:“ Cb-Ad” 第一个字母是“ C ”。我们应该向左旋转,但是这个“ C ” 之前没有字符。因此,没有任何旋转。 下一个字母是“ b ”。我们向右旋转“ C ”。因为它是单个字符,所以它保持不变。 字符“ - ”不会触发任何旋转,因为它不是字母。 下一个字母是“ A ”。我们轮流“ CB- ”到左边,这给“ 公元前广告” 第四个也是最后一个字母是“ d ”。我们向右旋转“ b-CA ”,即为“ Ab-C d” 因此,预期输出为“ Ab-Cd ”。 规则 您可以将输入作为字符串或字符数组进行输入-根据您的语言,输入内容可能相同也可能不同。 您也可以输出字符数组而不是字符串。 这是ogl-edocf 代码高尔夫 测试用例 "cbad" -> …
22 code-golf  string  code-golf  string  code-golf  string  parsing  brainfuck  code-challenge  python  hello-world  error-message  code-golf  string  code-golf  number  integer  counting  subsequence  code-golf  string  cipher  code-golf  array-manipulation  arithmetic  integer  matrix  code-golf  math  sequence  code-golf  restricted-source  pi  popularity-contest  cops-and-robbers  polyglot  popularity-contest  cops-and-robbers  polyglot  code-golf  file-system  king-of-the-hill  code-golf  number  sequence  integer  rational-numbers  string  code-challenge  source-layout  code-golf  ascii-art  king-of-the-hill  code-golf  array-manipulation  sorting  code-golf  string  code-golf  restricted-source  source-layout  tips  math  code-challenge  permutations  logic-gates  code-golf  number  random  integer  code-golf  math  code-golf  math  number  decision-problem  king-of-the-hill  python  board-game  code-challenge  brainfuck  busy-beaver  code-golf  number  cops-and-robbers  polyglot  obfuscation  answer-chaining  code-golf  number  integer  conversion  code-golf  string  parsing  code-golf  ascii-art  number  king-of-the-hill  javascript  code-golf  source-layout  radiation-hardening  code-golf  array-manipulation  matrix  code-golf  string  graph-theory  code-golf  array-manipulation  decision-problem  code-golf  string  ascii-art  code-golf  string  code-golf  array-manipulation 

14
非舍入分数
当您将分数转换为十进制数并想要存储该数时,通常必须舍入该数,因为您只想使用一定数量的内存。假设您只能存储5个十进制数字,则5/3变为1.6667。如果只能存储2个十进制数字,则它将是1.7(现在假设它始终在0到9.99之间...)。 如果您现在尝试使用1.7逆转该过程,并且想要取回小数,那将是困难的,因为您知道1.7只是一个四舍五入的数字。当然,您可以尝试17/10,但与“优雅” 5/3相比,这是一个“丑陋”的分数。 因此,现在的目标是找到分母为b的分数a / b,在正确舍入后得出舍入的十进制数。 细节 输入包含1到5位数字的字符串,介于0(包括)和10(不包括)之间,并带有'。'。在第一个数字之后。假设n表示位数。输出必须是两个整数的列表/数组,[numerator, denominator]或者是一个分子为非负数且分母为正数的有理数据类型(可以创建自己的数据类型或使用内置数据类型)。正确四舍五入为n数字(即n-1小数点后的数字)时,分数分子/分母必须等于输入。 限制:仅允许一个循环语句。这意味着您在整个代码中只能使用一个循环语句(如foror while或gotoetc,以及功能循环如map或fold将代码应用于列表/数组的每个元素),但是您可以随意“滥用”它或使用递归等 您应该编写一个函数。如果您的语言没有功能(即使没有),则可以选择将输入存储在变量中(或通过stdin输入),然后打印结果或将结果写入文件。最低字节数获胜。 四舍五入 四舍五入应遵循“常规”四舍五入规则,即,如果要截断的最后一位数字为5或更大,则将四舍五入,对于其他情况,将四舍五入,例如: 四舍五入为4.5494 1位数:5 2位数字:4.5 3位数:4.55 4位数字:4.549 例子 请包括以下测试用例和其他“有趣”的用例: Input 1.7 Output 5/3 Input 0. Output 0/1 Input 0.001 Output 1/667 Input 3.1416 Output 355/113

11
pi的良好有理逼近
编写一个程序,以分母递增的顺序打印出分母<1000000的pi的所有良好有理近似值。 a/b如果pi比分母不大于的任何其他有理数更接近pi,则它是pi的“良好有理近似值” b。 输出应该总共有167行,并且开始和结束是这样的: 3/1 13/4 16/5 19/6 22/7 179/57 ... 833719/265381 1146408/364913 3126535/995207 最短的程序获胜。

20
我希望我的书远离这张桌子
故事 因此,我有一本书想与桌子分开,只剩下其他书。我想知道我需要多少本书才能达到本书的长度。nnn 这是我在Wolfram的朋友为我绘制的可视化效果: Wolfram和Wikipedia中有关该主题的更多信息。 挑战 给定整数输入,输出顶书要与桌子水平隔开本书长度需要多少本书。或在以下不等式中 找到输入的的最小整数值。 nnnnnn mmmnnn∑i=1m12i≥n∑i=1m12一世≥ñ\sum_{i=1}^{m}\frac{1}{2i} \geq n 编辑:对于分数,至少使用IEEE单精度浮点。抱歉,发布后无法编辑挑战 (OEIS A014537) 测试用例 1 4 2 31 3 227 5 12367 10 272400600

3
当生活给你柠檬时,做柠檬水
挑战 您将得到一个输入字符串,任何地方的话"Lemon"是发现它应转换到"Lemonade" ,但是在a,d和e在句子中必须借用了别的地方。 例 输入示例: 我小时候发现一个柠檬 示例输出: 我小时候就喝柠檬水 该柠檬水是由从原来的偷下标字母创建 我foun d柠檬水WH é ñ我是一个孩子 这只是一个可能的输出示例,“ e”,“ d”和“ a”可以从任何地方获取(当然单词除外lemon) 评论 •如果,或s 不足e,则必须输出给定字母可进行的操作。例如,输入将输出adbdblemonbblemond • lemon文本可能并不总是独立的(两边都有空格)。例如,您可能lemons在输入中的某处有单词,而输出应为lemonades •输入可以包含任意数量的lemons,甚至0 lemons(在这种情况下,输出将与输入相同) •您可以用大写和小写字母来制作您的柠檬水,例如leMon可以变成leMonade,而ade借用可以是任意大小写(因此也可以变成leMonADe)。您借用的信件的大小写必须保持与借用时相同。(示例输入->输出,he hAD lemOn-> h h lemOnADe) •不必是一个完整的程序,仅一个功能就可以。 •您可以假设输入仅是CP437字符集 高尔夫代码 这是代码高尔夫球,因此赢得最少的字节数! 伪测试案例 *注意:对于任何给定的输入,可能会有多个可能的输出,因此您的程序可能无法完全按照这些测试用例的方式输出,这仅仅是为了使人们可以理解逻辑: 输入:EpaD leMons 输出:p LeMonaDEs 输入:hello world 输出:hello world 输入:柠檬柠檬 输出:柠檬柠檬 *(本e,a,d字母不应该从另一个“柠檬”拍摄) 输入:HE HAD柠檬水 输出:HH …
21 code-golf  string  code-golf  parsing  internet  stack-exchange-api  code-challenge  kolmogorov-complexity  restricted-source  brain-flak  python  logic  pyth  code-golf  string  search  optimized-output  code-golf  tips  language-design  golfing-language  code-golf  tips  language-design  code-golf  number  sorting  pi  code-golf  math  number  code-golf  string  balanced-string  classification  brain-flak  code-golf  math  number-theory  decision-problem  code-golf  tips  code-golf  number  sequence  code-golf  balanced-string  brain-flak  code-golf  math  sequence  arithmetic  fibonacci  code-golf  math  parsing  code-golf  string  keyboard  code-golf  code-golf  string  source-layout  whitespace  code-golf  math  rational-numbers  code-golf  string  code-golf  string  code-golf  math  sequence  code-golf  number  floating-point  code-golf  string  decision-problem  subsequence  code-golf  string  kolmogorov-complexity  code-golf  string  permutations  balanced-string  brain-flak  code-golf  string  math  number  code-golf  string  primes  cipher  code-golf  string  ascii-art  chemistry  code-golf  ascii-art  grid  counting  code-golf  math  arithmetic  integer  code-golf  number  kolmogorov-complexity  code-golf  ascii-art  kolmogorov-complexity  sequence  metagolf  brain-flak  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  whitespace 

2
有理分解a = xyz(x + y + z)
写功能x(a),y(a)并z(a)使得对任何理性a 所有函数返回有理数和x(a)*y(a)*z(a)*(x(a) + y(a) + z(a)) == a。您可以假设≥0。 只要程序在数学上是合理的,就不需要在程序中使用有理类型或运算。例如,如果您在答案中使用平方根,则必须表明其自变量始终是有理数的平方。 如果您的语言繁琐或不存在函数,则可以编写三个命名函数x,y,z或编写三个程序。或者,您也可以编写一个返回三个数字x,y,z的程序/函数。最后,如果您愿意,可以输入/输出有理数作为一对分子/分母。您的得分是三个函数或三个程序的总大小(以字节为单位)。分数最低者获胜。 不允许强行强制。对于任何a = p / q,其中p,q≤1000,您的程序应在10秒内运行。 一个例子(这并不意味着您的分解必须给出这些数字): x = 9408/43615 y = 12675/37576 z = 1342/390 x*y*z*(x+y+z) = 1

2
交换一些周期性和非周期性的部分
在每个有理数的十进制表示形式中p/q,您具有以下形式的周期尾部,非周期性首部和小数点前的部分: (before decimal point).(non-periodic)(periodic) 一些示例包括: 1/70 = 0.0142857... = (0).(0)(142857) 10/7 = 1.428571... = (1).()(428571) ## no non-periodic part 1/13 = 0.076923... = (0).()(076923) 3/40 = 0.075 = (0).(075)() ## no periodic part -2/15 = -0.13... = -(0).(1)(3) ## negative 75/38 = 1.9736842105263157894... = (1).(9)(736842105263157894) ## periodic part longer than …

30
用给定的宽度绘制空心的#
我从Codingame那里获得了这一挑战,并且对比我的更好的解决方案感到好奇: 通过标准输入给定宽度,在给定的宽度和长度上绘制一个空心的#号正方形。 例: 5结果 ##### # # # # # # ##### 我用python解决了这个问题,所以我对其他python代码特别感兴趣。但是,请随时以所需的任何语言发布您的解决方案。
21 code-golf  string  ascii-art  number  code-golf  grid  code-golf  string  ascii-art  code-golf  alphabet  cipher  code-golf  math  number  code-golf  quine  code-golf  palindrome  polyglot  code-golf  number  array-manipulation  counting  logic  code-golf  string  primes  binary  decision-problem  code-golf  ascii-art  kolmogorov-complexity  popularity-contest  code-golf  probability-theory  code-golf  string  code-golf  python  polyglot  programming-puzzle  c++  code-golf  math  code-golf  binary  integer  bitwise  code-golf  rational-numbers  code-golf  string  palindrome  code-golf  ascii-art  code-golf  code-golf  string  fibonacci  code-golf  math  sequence  code-golf  code-golf  string  palindrome  code-golf  string  code-golf  math  primes  source-layout  code-golf  sequence  binary  integer  code-golf  math  arithmetic  game  code-golf  restricted-source  palindrome  code-golf  restricted-source  palindrome  code-golf  combinatorics  binary  code-golf  string  math  code-golf  ascii-art  number  code-golf  cipher  code-golf  base-conversion  counting  code-golf  sequence  random  classification  code-golf  string  subsequence  code-golf  permutations  code-golf  string  code-golf  string  cipher  code-golf  kolmogorov-complexity  arithmetic  integer  code-golf  quine  markov-chain  code-golf  string  code-golf  code-golf  ascii-art  maze 

22
简化连续分数
连续分数是迭代描述分数的表达式。它们可以用图形表示: 或者它们可以表示为值列表: [a0; a1, a2, a3, ... an] 挑战: 取一个基数:和一个分母值列表:并将连续分数简化为简化的有理分数:分别返回或打印分子和分母。a0[a1, a2, a3, ... an] 例子: √19 : [4;2,1,3,1,2]: 170/39 ℯ: [1;0,1,1,2,1,1]: 19/7 π: [3;7,15,1,292,1]: 104348/33215 ϕ: [1;1,1,1,1,1]: 13/8 示例实现:(python) def foo(base, sequence): numerator = 1 denominator = sequence[-1] for d in sequence[-2::-1]: temp = denominator denominator = d * denominator …

9
是在康托集内吗?
挑战 对于这个挑战,您应该确定Cantor集中是否有给定的数字。首先,让我们定义Cantor集。 首先,从0到1之间的数字开始。超出此范围的任何数字均不在Cantor集中。现在,让我们将数字分为三个相等的部分:[0,1 / 3],[1 / 3,2 / 3],[2 / 3、1]。不在第一部分和最后一部分范围内的任何数字都不在Cantor集中。现在,对段[0,1 / 3]和[2/3,1]重复此过程。然后,您重复剩余的内容。您会永远这样做。最后,所有剩余的数字都在Cantor集中。这是前六个迭代的图表: 输入值 两个整数x和y。 0 < y < 2^15 0 <= x <= y 最大的共同点x和y为1,除非x == 0。 输出量 如果x/y在Cantor设置中,则为真。 如果x/y不在Cantor集合中,则为假。 例子 现在,让我们看一下Cantor集中的一些数字示例。 1/3 -> true 它在边界上,并且边界永远不会删除。 1/4 -> true 1/4永远不会位于细分的中间三分之一,尽管它也永远不会位于边界上。如果遵循它的路径,您实际上会发现它在节的前三分之一和后三分之一之间交替出现。 1/13 -> true 1/13 在第一部分,第一部分和最后一部分之间切换。 1/5 -> false 1/5 …

10
埃及分数
概述: 来自维基百科:埃及分数是不同单位分数的总和。即,表达式中的每个分数都有一个等于1的分子和一个为正整数的分母,并且所有分母彼此不同。这种类型的表达式的值为正有理数a / b。每个正有理数都可以用埃及分数表示。 挑战: 编写最短函数,该函数将返回加总给定分数的最小单位分数集的所有分母的值。 规则/约束: 输入将是两个正整数值。 这可以是STDIN,argv,逗号分隔,空格分隔,或其他任何你喜欢的方法。 第一个输入值应为分子,第二个输入值应为分母。 第一个输入值应小于第二个输入值。 输出的值可能超过系统/语言(RAM,MAX_INT或存在的任何其他代码/系统约束)的内存限制。如果发生这种情况,只需将结果截断为可能的最高值,然后注意(即...)。 输出应该能够处理至少2147483483647(2 31 -1,32 位带符号int)的分母值。 较高的值(long等)完全可以接受。 输出应是找到的最小单位分数集(或分数本身,即1/2)的分母的所有值的列表。 输出应按照分母的值升序排序(以分数的值降序)。 可以使用任何希望的方式对输出进行定界,但是两者之间必须有一些字符,以便将一个值与下一个值区分开。 这就是代码高尔夫,因此最短的解决方案将获胜。 举例: 输入1: 43, 48 输出1: 2, 3, 16 输入2: 8/11 输出2: 1/2 1/6 1/22 1/66 输入3: 5 121 输出3: 33 121 363

2
有理数的按位XOR
介绍 0和1之间的每个有理数都可以表示为最终的周期性位序列。例如,11/40的二进制表示为 0.010 0011 0011 0011 ... 0011无限期重复的部分。以下是找到此表示形式的一种方法。从r = 11/40开始,然后重复将其加倍并取小数部分,当它超过1时进行记录。当r的值重复时,您就知道已经进入循环。 1. r = 11/40 2. 2*r = 11/20 < 1 -> next bit is 0, r = 11/20 3. 2*r = 11/10 >= 1 -> next bit is 1, r = 2*r - 1 = 1/10 4. 2*r = 1/5 …

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.