Questions tagged «rational-numbers»

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

6
可以使用异常取消来简化分数吗?
异常取消(来自Wolfram Alpha): 异常抵消是分数a / b的分子和分母中a和b的数字“取消”,导致分数等于原始数。请注意,如果分子和分母中一个或多个数字存在多个但不同的计数,则对于要取消的数字有歧义,因此最简单的方法是将此类情况排除在考虑范围之外。 链接 用简单的话说,你有一个分数a / b。如果您可以抵消分数中的数字以创建另一个c / d等于原始分数(a / b = c / d)的分数,则可以使用异常抵消来简化分数。 您的挑战是制作一个程序或函数,该程序或函数以形式输入分数字符串a/b并输出或返回真实值(如果可以使用反常消除来简化分数),否则返回伪造的值。a并且b将始终为非零的正整数。a并且b将始终具有两个或多个数字。此外,所有的无论从数字a还是b不会被取消了(你不会得到输入12/21),至少一个数字从a和b每次(你不会获得输入将被取消43/21),而最终的结果将永远不会0对任何a或b。您的程序必须取消a和之间的所有公用数字b(即1231/1234,您必须取消了1,一2,和3)。如果有多种取消的可能性,请首先选择最左边的数字(515/25变为15/2而不是51/2)。 例子: Input Output Why 1019/5095 true Remove the 0 and the 9 from both sides of the fraction to get 11/55, which is equivalent. 16/64 true Remove the 6 from both sides, …

4
计算有理数的p-adic范数
计算有理数的p-adic范数 编写一个函数或程序,该函数或程序将3个整数m,n,p(其中p是一个正质数)作为输入,然后将p-adic范数(由表示|m/n|_p)输出为(完全归约)分数。众所周知,费马特的边距很小,但未知的是他的电脑屏幕很小。因此,请尝试使代码尽可能短,以使其适合Fermat的屏幕! 定义 给定一个质数p,每个分数m/n都可以唯一地写(忽略符号),(a/b)* p^e即e整数,p既不除a也不除b。该p进规范的m/n是p^-e。如果分数为0:,则是一种特殊情况|0|_p = 0。 输出格式必须为x/y(例如1/3,对于整数10或两者均等10/1,允许为负,对于负数必须有一个前导减号,例如-1/3) 细节 程序必须使用stdin / stdout,或者仅由返回有理数或字符串的函数组成。您必须假设输入m/n没有完全减少。您可以假定这p是素数。该程序必须能够处理之间-2^28最大为的整数2^28,并且不应超过10秒。 不允许使用内置的因式分解和素数检查功能,以及内置的基础对话功能和用于计算p-adic评估或规范的内置功能。 示例(从Wikipedia窃取): x = m/n = 63/550 = 2^-1 * 3^2 * 5^-2 * 7 * 11^-1 |x|_2 = 2 |x|_3 = 1/9 |x|_5 = 25 |x|_7 = 1/7 |x|_11 = 11 |x|_13 = 1 有趣的琐事 (不一定要了解/阅读此挑战,但也许很高兴作为动机来阅读。) (如果我使用了错误的单词或其他错误,请纠正我,我不习惯用英语来谈论这个问题。) …

2
X大于3,且X和Y之间至少相差2
我试图打败一些C ++。是否可以使这种情况更短? X > 3 & X - Y > 1 (当然,除了删除空白。) 所以,X至少4,但X >= Y + 2。 X和Y是[0,5]间隔中的整数。 我试图找到一些按位公式,但失败了。
11 code-golf  number  tips  c++  code-golf  popularity-contest  obfuscation  code-golf  c  code-golf  board-game  hexagonal-grid  code-golf  game  grid  code-golf  number  permutations  popularity-contest  math  graphical-output  number-theory  king-of-the-hill  code-challenge  compression  code-challenge  fastest-code  code-golf  math  ascii-art  animation  code-golf  popularity-contest  generation  counting  fastest-code  fastest-code  popularity-contest  image-processing  king-of-the-hill  code-golf  conversion  binary-tree  code-golf  math  number  rational-numbers  division  code-golf  restricted-source  hashing  atomic-code-golf  logic-gates  code-golf  function  code-challenge  puzzle-solver  ai-player  test-battery  popularity-contest  music  compression  code-golf  number  stack  atomic-code-golf  logic-gates  ascii-art  popularity-contest  code-golf  date  grid  code-challenge  game  code-golf  parsing  code-golf  math  geometry  sequence  popularity-contest  code-trolling  code-golf  string  restricted-source  code-golf  quine  king-of-the-hill  code-golf  math  code-golf  simulation  code-golf  ascii-art  code-challenge  sorting  optimization 

9
在Stern-Brocot树中找到分数的位置
所述的Stern-Brocot树是级分的二进制树,其中每个级分是通过将两个级分在上面的水平相邻它的分子和分母获取。 它以“端点分数” 开头0/1并1/0作为“端点分数”生成,然后通过将这些分数的分子和分母加在一起,在每个连续的分数对之间放置一个分数进行迭代,如下所示: 0. 0/1 1/0 1. 0/1 1/1 1/0 2. 0/1 1/2 1/1 2/1 1/0 3. 0/1 1/3 1/2 2/3 1/1 3/2 2/1 3/1 1/0 4. 0/1 1/4 1/3 2/5 1/2 3/5 2/3 3/4 1/1 4/3 3/2 5/3 2/1 5/2 3/1 4/1 1/0 在船尾-Brocot树(的每次迭代n次迭代),有2^n + 1该序列中的元素,这是我们可以从归于一小部分0/2^n到2^n/2^n。每次新迭代都只是在每对连续分数之间插入一个分数“ halfway”。 这使得Stern-Brocot树在正有理数与0到1之间的二进制分数之间是一对一的映射,从而也证明了这两个集合具有相同的基数。 您的任务是编写一个程序或函数,给定最低有理数的分子和分母,确定与该分数在Stern-Brocot树中的位置相对应的二进制分数。 …

6
有理数功能
创建一个采用自然数(从0开始,包括0)的函数,并返回一对正整数,分别是分子和分母。使用对角线遍历。必须跳过以前计算的数字。(您可以记住跳过的值集) 图解: 红色是跳过的值 值: f(0)= 1、1 f(1)= 2,1 f(2)= 1、2 f(3)= 1、3 f(4)= 3,1(注意跳过) f(5)= 4,1 f(6)= 3,2 f(7)= 2,3 f(8)= 1、4 f(9)= 1、5 f(10)= 5、1(请注意跳过) 您可以使用Rational数据结构及其操作(如果存在)。最短的代码获胜。

3
计算电阻(书呆子狙击)
下午好,高尔夫球手, 我们今天的挑战是受XKCD漫画356和370启发的。我们将编写一个程序来计算一组电阻的电阻。预先警告说,这几乎足以应付代码挑战,但是我认为以高尔夫格式编写稍微复杂一些的程序是有一定道理的。最少的字符获胜。 计算电阻取决于以下两个公式: 如果电阻是串联的,则电阻是每个电阻的电阻之和 如果电阻是并联的,则电阻是每个电阻的电阻之和的倒数。 所以-例如: 您面临的挑战是,以最少的字符数来计算一组最多64个电阻器的电阻。对于复杂性,尤其是输入规则,我深表歉意。我试图以每种语言都可以使用的方式定义它们。 每个电阻将连接到2个或更多其他电阻。 保证输入有效,只有一个入口和一个出口点,它们将连接 网络将是串并联的,以防止需要比所展示的更多的数学运算 输入将通过文件,参数或标准输入,这取决于您的语言。 输入将由一系列换行符或正斜杠分隔的语句组成,这些语句由电阻的电阻的整数组成,并且用空格分隔电阻的一侧所连接的电阻的ID。 第一个电阻器的ID将为1,对于每个后续电阻器递增1。 开始将始终具有0的ID 最终电阻将始终具有0欧姆的电阻,并且仅在其线路中定义了连接 例如: 可以表示为 3 0 6 1 1 0 5 0 0 2 3 4 输出可以是stdout或文件。它可以通过以下方式之一表示: 一个数字,至少要保留2个小数位,后跟换行符 由整数(分子),正斜杠和另一个整数(分母)组成的分数,后跟换行符。分数不必为最低形式-例如4/4或10/8是可接受的。分数必须在1/100之内。完全准确没有任何好处-这是为了使没有定点或浮点运算的语言能够竞争而提供的拐杖。 我希望能涵盖所有问题。祝好运!

7
大约完美的五分之一
从1-TET开始,给出均等的气质,这些气质越来越接近完美的第五(正比3/2)。(OEIS序列A060528) 序列的正式描述,从OEIS复制: 一系列相等的气质(八度的等分度),其最接近音阶的步阶越来越接近于两个音乐和声调的比率:完美的4th,4/3和完美的5th,3/2。 请注意,通过对称,完美的第四位无关紧要。 假设我们知道3在序列中。3-TET中的频率为: 2^0, 2^⅓, 2^⅔ 2^⅔的最接近对数近似在哪里3/2? 顺序是4吗?4-TET中的频率为: 2^0, 2^¼, 2^½, 2^¾ 2^½的最接近位置在哪里3/2?这并不好于2^⅔,因此4不在序列中。 通过类似的方法,我们确认序列中有5,依此类推。 当给定整数n作为输入时,输出必须按顺序是序列的前N个数字。例如,当时n = 7,输出应为: 1 2 3 5 7 12 29 xnor的序列描述 无理常数可以通过有理分数序列来近似日志2(3 )≈ 1.5849625007211563 ...log2⁡(3)≈1.5849625007211563… \log_2(3) \approx 1.5849625007211563\dots 21个,32,53,85,117,1912,4629, …21,32,53,85,117,1912,4629,… \frac{2}{1}, \frac{3}{2}, \frac{5}{3}, \frac{8}{5}, \frac{11}{7}, \frac{19}{12}, \frac{46}{29}, \dots 如果它是绝对距离新的最接近的分数,则该分数包含在序列中,也就是说,比分母较小或相等的任何其他分数更近。∣∣pq-日志2(3) ∣∣|pq−log2⁡(3) | \left| \frac{p}{q} - …

7
高尔夫代码:弗雷序列(I)
挑战 在此任务中,您将得到一个整数N(小于10 ^ 5),输出N阶的Farey序列。 输入N在单行中给出,输入由EOF终止。 输入项 4 3 1 2 输出量 F4 = {0/1, 1/4, 1/3, 1/2, 2/3, 3/4, 1/1} F3 = {0/1, 1/3, 1/2, 2/3, 1/1} F1 = {0/1, 1/1} F2 = {0/1, 1/2, 1/1} 约束条件 输入数量不会超过10 ^ 6个值 您可以使用任何选择的语言 最短的解决方案获胜!
10 code-golf  math  code-golf  math  code-golf  number  number-theory  code-golf  math  arithmetic  repeated-transformation  code-golf  geometry  popularity-contest  code-golf  code-golf  tips  haskell  math  fastest-algorithm  code-golf  combinatorics  code-golf  math  polynomials  rational-numbers  code-golf  code-golf  popularity-contest  javascript  code-golf  kolmogorov-complexity  code-golf  code-golf  math  combinatorics  permutations  code-challenge  restricted-source  random  array-manipulation  code-challenge  generation  code-golf  code-golf  ascii-art  arithmetic  division  code-challenge  number  code-golf  math  number  binary  code-golf  ascii-art  code-golf  interpreter  stack  code-golf  internet  networking  code-golf  math  code-golf  ascii-art  code-golf  math  sequence  code-golf  hello-world  restricted-source  code-golf  ascii-art  code-golf  geometry  code-golf  kolmogorov-complexity  pi  code-golf  math  combinatorics  permutations  code-golf  math  code-challenge  ascii-art  code-golf  string  code-golf  quine  code-golf  math  floating-point  golfscript  code-golf  string  code-golf  sliding-puzzle  code-challenge  arithmetic  code-golf  math  code-golf  geometry  optimized-output 

13
扩大比较链
与大多数语言不同,Python a<b<c会像在数学中一样进行评估,实际上是比较三个数字,而不是将布尔值a<b与进行比较c。用C(以及许多其他语言)编写此代码的正确方法是a<b && b<c。 在这个挑战中,您的任务是将这样任意长度的比较链从Python /直观表示扩展到如何用其他语言编写。 技术指标 您的程序必须要处理运算符:==, !=, <, >, <=, >=。 输入将具有仅使用整数的比较链。 不用担心一路比较的真实性,这纯粹是语法/语法上的挑战。 输入将没有任何空格,以防止答案因分割空格而使解析变得琐碎。 但是,您的输出可能只有一个空格,要么仅包含&&,要么包含比较运算符和&&,或者两者都不包含,但是要保持一致。 测试用例 Input Output --------------------------------------------------------------- 3<4<5 3<4 && 4<5 3<4<5<6<7<8<9 3<4 && 4<5 && 5<6 && 6<7 && 7<8 && 8<9 3<5==6<19 3<5 && 5==6 && 6<19 10>=5<7!=20 10>=5 && 5<7 && 7!=20 15==15==15==15==15 …
9 code-golf  parsing  conversion  syntax  code-golf  sequence  primes  code-challenge  geometry  optimization  code-golf  graph-theory  code-golf  number-theory  primes  integer  code-golf  source-layout  cops-and-robbers  code-golf  source-layout  cops-and-robbers  code-golf  sequence  primes  integer  code-golf  math  number-theory  primes  rational-numbers  code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

30
给定int输入n,输出n * reversed(n)
给定一个整数n,打印输出n * reversed(n) reversed(n)是当您reverse的数字为时得到的数字n。 reverse(512) = 215 reverse(1) = 1 reverse(101) = 101 >>>>>>>> func(5) = 5*5 = 25 func(12) = 12*21 = 252 func(11) = 11*11 = 121 func(659) = 659*956 = 630004 最短的代码胜出! 排行榜 显示代码段 var QUESTION_ID=144816,OVERRIDE_USER=71625;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var …
9 code-golf  math  arithmetic  code-golf  math  integer  code-golf  arithmetic  integer  code-golf  sequence  base-conversion  palindrome  code-golf  math  primes  integer  code-golf  parsing  conversion  syntax  code-golf  sequence  primes  code-challenge  geometry  optimization  code-golf  graph-theory  code-golf  number-theory  primes  integer  code-golf  source-layout  cops-and-robbers  code-golf  source-layout  cops-and-robbers  code-golf  sequence  primes  integer  code-golf  math  number-theory  primes  rational-numbers  code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

1
确定有理坐标是否在右Sierpinski三角形中
所述的Sierpinski三角形是一组其通过用一个三角形起始和反复分裂的所有三角形分成四个全等三角形并除去中心三角形构造在平面上的点。右侧的Sierpinski三角形在和处有角(0,0),如下所示:(0,1)(1,0) 该集合的一些等效定义如下: n全部针对上述过程的第t次迭代n。 (x,y)带有0 <= x <= 1和的点0 <= y <= 1,对于所有正整数n,nx和y的二进制展开式中的th位都不都是1。 让 T = {(0,0),(1,0),(0,1)} 让f上套由以下定义2D点的函数: f(X) = {(0,0)} ∪ {(x+t)/2 | x∈X, t∈T} 然后右谢尔宾斯基三角形是拓扑封闭的的至少固定的点的(通过一组容纳)f。 让S是正方形{(x,y) | 0<=x<=1 and 0<=y<=1} 让g(X) = S ∩ {(x+t)/2 | x∈(X), t∈T}(T如上定义) 然后,右边的Sierpinski三角形是的最大固定点g。 挑战 编写一个程序或函数,该程序或函数接受4个整数,a,b,c,d如果(a/b,c/d)属于正确的Sierpinski三角形,则给出真实值,否则给出假值。 计分 这是代码高尔夫球。以字节为单位的最短代码获胜。 测试用例 以下是右边的Sierpinski三角形: 0 1 0 1 …

4
精确计算概率
此任务是关于编写代码以准确计算概率。输出应该是精确的概率,以其最大简化形式的分数表示。那是它永远不应该输出4/8,而应该1/2。 对于某个正整数n,请考虑一个长度为1s和-1s的均匀随机字符串,n并将其称为A。现在将A其串联为第一个值。就是说A[1] = A[n+1]从1 A开始的索引 现在具有length n+1。现在还考虑长度的第二随机串n,其第一n值是-1,0或1的概率是1 / 4,1 / 2,1/4每并调用它B. 例如,考虑n=3。对于可能的值A,并B可能会A = [-1,1,1,-1]和B=[0,1,-1]。在这种情况下,两个内积是0和2。 现在考虑的内积A[1,...,n]和B和的内积A[2,...,n+1]和B。 您的代码必须输出两个内积均为零的概率。 对于n=1这种可能性显然是1/2。 我不介意n代码中的指定方式,但是如何更改它应该非常简单明了。 语言和图书馆 您可以使用任何喜欢的语言和库。我想运行您的代码,因此请尽可能提供有关如何在Linux中运行/编译代码的完整说明。

14
显示连续分数
您的挑战是将分数转换为其连续的分数形式。 输入:分数可以任何格式输入,包括(但不限于) 字符串:“ 7/16” 清单:{7,16},(7,16),[7,16] 简单有序对:7 16 功能:f [7,16] 输出:2D连续分数,水平分数条将分子和分母分开。只有分子等于1的连续分数有效。不必使字体大小根据深度而变化。前导零(用于适当的分数)是可选的。 深度:您的代码必须能够显示至少8个深度级别。 获奖标准:最短代码获胜。您必须包括几个显示输入和输出的测试用例。 测试示例(输入后输出) 5/4 5/3 5/7 9/16 89/150
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.