Questions tagged «rational-numbers»

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

5
二进制卷积
二进制卷积由数字描述M,并应用于数字N。对于的二进制表示形式中的每个位M,如果将该位设置为(1),则通过将与相应位中的相应位相邻的两个位进行XOR N(在必要时进行环绕)来给出输出中的相应位。如果未设置该位(0),则输出中的相应位由中的相应位给出N。 一个有效的示例(具有8位值): 让N = 150,M = 59。它们的二进制表示形式分别为10010110和00111011。 根据M的二进制表示形式,卷积0、1、3、4和5。 位0的结果由对位1和7进行XOR运算得出(因为我们进行了环绕),得出1。 位1的结果由位0和2的XOR运算得出0。 位2的结果由原始位2给出,即1。 第3位的结果由第2位和第4位的XOR运算得出0。 位4的结果由位3和5的XOR运算得出0。 第5位的结果由第4位和第6位的XOR运算得出1。 位6和7的结果由原始位6和7给出,得出0和1。 因此,输出为10100110(166)。 挑战 给定N和M,输出执行Mon上描述的二进制卷积的结果N。输入和输出可以采用任何方便,一致且明确的格式。N并且M将始终在(包括)范围内[0, 255](8位无符号整数),并且应将其二进制表示形式填充为8位以执行二进制卷积。 测试用例 150 59 -> 166 242 209 -> 178 1 17 -> 0 189 139 -> 181 215 104 -> 215 79 214 -> 25 190 207 -> 50 61 …
15 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 

30
向零舍入
这是一个简单的任务。给定正或负实数,将其四舍五入为接近零的下一个整数。 挑战 通过任何正数或负实数的合理形式(stdin,函数等)进行输入。 将此数字四舍五入为“接近零”-这意味着,如果为正数,则将四舍五入;如果为负数,则将四舍五入。 返回该数字或将其输出到控制台。 测试用例 1.1 => 1 -1.1 => -1 500.4 => 500 -283.5 => -283 50 => 50 -50 => -50 规则 这是代码高尔夫,因此最少得分(以字节为单位)获胜。 注意标准漏洞。 玩得开心! 更多吉米挑战即将来临

9
编号积极理性
通过以下过程可以证明正有理数是可数的: 零序数0 将其他数字排列在网格中,以便a行,b列包含a / b 从右上到左下绘制对角之字形 保持锯齿形遇到的唯一数字的连续统计 这是锯齿形的图片: 因此,遇到的数字是按顺序 1/1, 2/1, 1/2, 1/3, 2/2, 3/1, 4/1, 3/2, 2/3, 1/4, 1/5, 2/4, 3/3, 4/2, 5/1, 6/1, 5/2, 4/3, 3/4, 2/5, 1/6, 1/7, 2/6, 3/5, 4/4, 5/3 ... 遇到的简化的唯一数字是 1, 2, 1/2, 1/3, 3, 4, 3/2, 2/3, 1/4, 1/5, 5, 6, 5/2, …

25
加分数
编写一个程序或函数,将两个长度相同的非空列表作为输入,并执行以下操作: 使用第一个列表的元素获取分子, 使用第二个列表的元素来获取分母, 简化后显示结果分数(2/4=>1/2),以“ +”号分隔, 在最后一个分数之后显示“ =”和加法结果。 例: 输入值 [1, 2, 3, 3, 6] [2, 9, 3, 2, 4] 输出量 1/2+2/9+1+3/2+3/2=85/18 关于规则 列表的元素将为正整数, 元素可以用空格隔开,例如:1/2 + 2/9 + 1 + 3/2 + 3/2 = 85/18可以, 尾随换行符是允许的, 列表可以采用上述格式以外的其他格式,例如:(1 2 3 3 6)或{1;2;3;3;6},等等。 1可表现为1/1, 您可以返回适当的字符串来代替打印, 您不需要处理错误的输入, 最短的代码胜出。

6
失控舍入错误
背景 您最近被一家小型会计师事务所雇用。会计的世界对您来说有点陌生,因此您不确定是否要遵循所有专业准则。特别是,您不知道何时应该将所有这些数字取整,以及朝哪个方向取整,因此,大多数时候您只希望将其取整,并希望取得最好的结果。 输入值 您的输入是代表简单计算的单个字符串。它包含一些由字符分隔的非负整数+-*/。字符串从左到右读取,并且普通优先级规则将被忽略,因此"23+1*3/4"表示“以23开头,加1,乘以3,再除以4”,结果为18。输入将不包含以开头的数字0(0自身除外),也不能除以零。 输出量 在计算的每个阶段,您都可以将结果向上或向下舍入为最接近的整数,或者保持原样。最后,向上或向下舍入以获得整数结果。您的输出是可能由这种计算产生的整数列表,排序后没有重复。 规则 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 "42" -> [42] "2+0+4-0" -> [6] "23+1*3/4" -> [18] "5/2" -> [2,3] "5/2+7/3*6-1" -> [17,18,19,23] "23/2/2*30-170/3" -> [-7,-6,-2,-1,0,1,3,4] "1/3*2*2*2*2*2*2" -> [0,16,20,21,22,24,32,64] "1/3*9" -> [0,3,9]

6
莱利定理
S. Ryley于1825年证明了该定理: 每个有理数可以表示为三个有理立方体的总和。 挑战 鉴于一些有理数r∈Qr∈Qr \in \mathbb Q 发现三个有理数a,b,c∈Qa,b,c∈Qa,b,c \in \mathbb Q,使得r=a3+b3+c3.r=a3+b3+c3.r= a^3+b^3+c^3. 细节 给定足够的时间和内存,您的提交应该能够为每个输入计算一个解决方案,这意味着仅用两个32位int表示一个分数是不够的。 例子 305230717280142=39829338766813−6366005495153−39775055545463=607029013173+239612924543−619227128653=(12)3+(13)3+(14)3=03+03+03=(12)3+(23)3+(56)3=(1810423509232)3+(−1495210609)3+(−25454944)330=39829338766813−6366005495153−3977505554546352=607029013173+239612924543−6192271286533071728=(12)3+(13)3+(14)30=03+03+031=(12)3+(23)3+(56)342=(1810423509232)3+(−1495210609)3+(−25454944)3 \begin{align} 30 &= 3982933876681^3 - 636600549515^3 - 3977505554546^3 \\ 52 &= 60702901317^3 + 23961292454^3 - 61922712865^3 \\ \frac{307}{1728} &= \left(\frac12\right)^3 + \left(\frac13\right)^3 + \left(\frac14\right)^3 \\ 0 &= 0^3 + 0^3 + 0^3 \\ …

30
从原动力中恢复原动力
定义:素数幂是自然数,可以以p n的形式表示,其中p是素数,n是自然数。 任务:给定素数p n > 1,返回素数p。 测试用例: input output 9 3 16 2 343 7 2687 2687 59049 3 计分:这是代码高尔夫球。以字节为单位的最短答案将获胜。
13 code-golf  arithmetic  primes  king-of-the-hill  python  board-game  code-golf  number  subsequence  code-golf  ascii-art  code-golf  array-manipulation  decision-problem  grid  fastest-algorithm  logic-gates  logic  code-golf  cards  code-golf  rational-numbers  code-golf  math  number  sequence  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  code-golf  number  sequence  decision-problem  code-golf  ascii-art  number  code-challenge  sequence  arithmetic  sorting  code-golf  date  fastest-algorithm  code-golf  string  number  random  combinatorics  code-golf  combinatorics  code-golf  ascii-art  base-conversion  code-golf  array-manipulation  code-golf  string  code-golf  string  number  arithmetic  code-golf  kolmogorov-complexity  code-golf  string  array-manipulation  json  code-golf  puzzle-solver  code-golf  binary  graph-theory  code-golf  arithmetic  haskell  code-golf  string  cipher  code-golf  code-golf  string  parsing  alphabet  code-golf  string  code-golf  ascii-art  code-golf  string  number  code-golf  string  balanced-string 

13
中间分数
中间分数 挑战: 您将需要创建至少需要3个输入的代码。2个整数和“小数表示形式”-哪种类型适合您的语言,以表示小数增量。如果选择字符串,则输入将为“ 1/4”,或者可以选择2个额外的整数输入或元组或w / e。 输入可以是任意合理的位置(STDIN,函数自变量,来自文件等),因此可以输出(STDOUT,函数返回值至文件等)。 规则: 输入的“分数”将始终是有效分数,小于1;例如“ 1/4” 第二个输入整数将始终具有比第一个整数高的值。IE,第一个输入整数将始终具有比第二个更低的值。 输入整数可以为负。 输出分数应尽可能减少(简化) 该代码将需要以输入分数的增量输出两个数字之间的每个“分数步”。 该代码应为此处所述的程序或函数 范例1: 输入: -2,3,"1/2" 输出: -2 -3/2 -1 -1/2 0 1/2 1 3/2 2 5/2 3 范例2: 输入: 1,2,"2/3" 输出: 1 5/3 2 要么 1 4/3 2 注意:计数可以从任一方向开始(谢谢@Mego) 这是代码高尔夫球,因此最短的答案以字节为单位。

4
获取吸气剂
任务 我想每个人都喜欢自动代码生成并节省工作时间。您白天必须创建许多类和成员,而又不想getters手动创建所有这些类和成员。 任务是编写一个程序或函数,该程序或函数getters将为您自动为所有类成员生成。 输入 在我们的语言中,对象非常简单。类和成员的名称必须以字符开头,[a-zA-Z]并且只能包含字符[a-zA-Z0-9]。这是一个例子: class Stack { public overflow; protected trace; private errorReport; } 输出 这是基于给定示例的有效输出: class Stack { public overflow; protected trace; private errorReport; public function getOverflow() { return this->overflow; } public function getTrace() { return this->trace; } public function getErrorReport() { return this->errorReport; } } 吸气剂 getter方法的要求是: …
13 code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

1
XKCD支架概率
今天的XKCD是一种运动比赛风格的支架,其中的参赛者都是众所周知的名字,分成几组可能令人困惑的名字。 根据给定回合中每个参赛者赢得该回合的机会均等,给出给定参赛者将赢得整个锦标赛的概率。 输入值 参赛者的名字。 XKCD喜欢使用所有大写字母,但是您可以使用任何对您有意义的大小写,也可以使您的输入不区分大小写。 您可以假定所有输入名称均有效。 Jeff Gordan可能是的拼写错误Jeff Gordon。您可以选择接受其中一个或两个。 一些名称包括标点符号,例如H. G. Wells和Joseph Gordon-Levitt。您可以选择接受带或不带标点符号的名称(或同时包含两者)。上面没有标点的将是H G Wells和Joseph Gordon Levitt 同样,你可以选择接受或者Beyoncé或Beyonce或两者 这Mister/Fred Astaire/Rogers条线有点奇怪。对于这一个,你必须接受以下所有的:Fred Rogers,Mister Rogers和Fred Astaire 输出量 给定参赛者以合理形式赢得整个比赛的概率(例如1/64) 例子 路易斯·阿姆斯特朗(Louis Armstrong)可能会参加6轮比赛,每轮有两名选手,因此他有1/64的获胜机会。 艾伦·里克曼(Alan Rickman)可能会参加7轮比赛,第一轮有3名选手参加,其余的有2名选手参加,因此他有1/192的获胜机会。 为了节省您键入图像中所有名称的工作量,explainXKCD已经将它们制成表格了。我也把它们丢到了这个粘贴桶里。 请注意,explainXKCD中的获胜概率是错误的-它们是应有值的两倍,因为它们大概忘记了最后一轮。感谢您指出@Geobits。

3
电脑:数学
这一挑战部分是算法挑战,涉及一些数学运算,部分只是最快的代码挑战。 对于某个正整数n,请考虑一个长度为1s和0s的均匀随机串,n并将其称为A。现在还要考虑第二个统一选择的长度n为或的随机字符串-1,并将其称为。现在,让我们成为+ 。那是串联的。0,1B_preBB_preB_preB_pre 现在考虑Aand 的内积,并从中B[j,...,j+n-1]调用它Z_j和index 1。 任务 输出应为n+1分数列表。的i在输出第术语应该是准确的概率的所有第一i方面Z_j具有j <= i相等0。 得分了 n在我的机器上,您的代码可在10分钟内为您的代码提供最大的正确输出。 决胜局 如果两个答案得分相同,则第一个提交者获胜。 在(非常非常不可能)的事件中,如果有人找到获得无限分的方法,则将接受这种解决方案的第一个有效证明。 暗示 不要尝试用数学方法解决这个问题,这太难了。我认为最好的方法是回到高中的概率的基本定义,并找到巧妙的方法来获取代码以对各种可能性进行详尽的列举。 语言和图书馆 您可以使用任何具有免费编译器/解释器/等的语言。适用于Linux以及任何可免费用于Linux的库。 我的机器 时间将在我的机器上运行。这是在AMD FX-8350八核处理器上的标准ubuntu安装。这也意味着我需要能够运行您的代码。因此,请仅使用易于使用的免费软件,并请提供有关如何编译和运行代码的完整说明。 一些测试输出。考虑每个的第一个输出n。那是什么时候i=1。对于n1到13,它们应该是。 1: 4/6 2: 18/36 3: 88/216 4: 454/1296 5: 2424/7776 6: 13236/46656 7: 73392/279936 8: 411462/1679616 9: 2325976/10077696 10: 13233628/60466176 11: 75682512/362797056 12: 434662684/2176782336 13: 2505229744/13060694016 您也可以i=1在http://oeis.org/A081671上找到其通用公式。 …

6
输出所有有理数的列表
在所有数学中,总会有一些定理超越所有常识。其中之一是无穷大大小不同的事实。另一个有趣的事实是这样的想法,即许多看起来大小不同的无穷大实际上是相同大小的。偶数和整数一样多,有理数也一样。 这个问题的一般概念是面对无穷无尽的现实。在这个挑战中,您的程序将输出一个列表,该列表将: 在任何特定时间,总有大量条目 最终在整个列表中恰好包含一次(如果可以运行足够长的时间)任何特定的(非零)有理数 包含无数个空插槽(列表中的条目不必要地设置为0) 空插槽比例接近100%的限制 对于每个正整数N,具有无限数量的位置,具有N个连续的空槽 挑战 您面临的挑战是编写尽可能短的程序,该程序将输出具有以下规则的特殊列表: 索引不是平方数的所有条目都应设置为零。因此,第一个条目将为非零,第二个和第三个条目将为零,第四个条目将为非零,依此类推。 所有有理数将采用不正确分数(例如4/5或144/13)的形式进行简化。唯一的例外是零0。 如果您的程序运行足够长时间且具有足够的内存,则所有(正负)有理数最终应出现在列表中。对于任何特定的有理数,所需时间可能是任意大,但始终是有限的时间。 如果运行无限长的时间,则任何非零有理数都不会出现两次。 规则3确实允许某些变化,因为存在无限数量的不同可能的合法输出。 输出将是一行流。每行将具有以下一般形式:5: 2/3第一个数字是条目号,然后是有理数。请注意,1: 0它将始终是输出的第一行。 输出示例片段: 1: 1/1 2: 0 3: 0 4: 2/1 5: 0 6: 0 7: 0 8: 0 9: -2/1 10: 0 etc... 规则,规定和注释 这是代码高尔夫。适用标准代码高尔夫规则。同样,由于输出中允许的变化,您至少需要说明为什么您相信列表将一次包含所有可能的有理数,并且您的解决方案是正确的。 编辑:由于质数确实分散了挑战,因此我将其更改为平方数。这实现了相同的目的,并且缩短了解决方案。

4
如何不减少分数
错误地减少分数 在此代码高尔夫球挑战中,您必须找到可以以错误的方式减少但仍以相同数量结尾的分数。 注意:减少分数的错误方法此处有一个确切的定义,请参阅详细信息。 例: 64/16 = 6 4/1 6 = 4/1 = 4 当然,您不能只击中两个6e,但是在这里您仍然得到正确的值。在这个挑战中,您必须找到这样的例子。 细节 您必须编写一个函数/程序,接受一个正整数n作为输入,然后输出/返回格式的分数列表/数组 numerator1,denominator1,numerator2,denominator2,... 该计划必须找出每个分数a/b与a+b=n和a,b>0它是否可以减少错误的方式。(无论是否可以以常规方式减少排放量,还是有很多减少排放量的可能性,都必须至少以一种方式以错误的方式减少排放量。) 错误方式的定义:当且仅当相同的连续数字序列出现在a和b中且如果除去子字符串时分数的值保持相同时,分数才能以错误的方式还原。 示例:1536/353可以“减少”为16/3,但是这两个值不相等,因此您不能以错误的方式减少此分数。 请注意,这种减少错误方式的定义也可以包括以正确方式减少的分数:即使110/10 = 11/1在减少错误方式的定义内,它也是有效的步骤。 计分 最少的字节数获胜。您可以编写一个接受整数并返回使用stdin / stdout的数组或程序的函数或程序,也可以考虑将n保存在变量中,并且在程序末尾,列表必须保存在另一个变量中。 测试用例 请包括以下测试用例(告诉我应该添加哪些测试用例,我不知道这些部分有多少/期望有多少示例) n=80 (64/16 should be in this list) n=147 (98/49 should be in this list) n=500 (294/196 should be in this list) …

5
多项式插值
编写一个 使用真正的任意精度有理数执行多项式插值的程序。输入看起来像这样: f(1)= 2/3 f(2)= 4/5 f(3)= 6/7 ... 您可以假设=符号前后只有一个空格,所有数字都是小数或整数。您可能还假设输入中的所有分数都是不可约的。 您可以假设不需要进行错误检查,即输入是有效的,并且f(x)中没有x被加倍。 输出应采用兼容LaTeX的形式,发出的LaTeX代码应产生与此处给出的输出相同的图形表示。 f(x)= 123x ^ 2 + \ frac {45} {2} x + \ frac {7} {4} 例如,必须尽可能减少分数。\frac{2}{4} 不允许这样的事情。如果数字是整数,请不要使用小数。 特殊规则: 您的程序应该... 适用于12级以下的多项式 不到1分钟即可完成输入 不使用任何为您完成整个计算的函数 输出最小可能次数的多项式 测试用例: 给定的测试用例只是为了澄清。您的程序应为所有正确的输入产生正确的结果。 输入值 f(1)= 2/3 f(2)= 4/5 f(3)= 6/7 输出量 f(x)=-\ frac {4} {105} x …

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 …

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.