Questions tagged «math»

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

7
不幸的数字!
要知道的事情: 首先,幸运数字。 幸运数字生成如下: 取所有自然数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20... 然后,删除每个第二个数字。 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39... 现在,3很安全。 删除每第三个数字: 1, 3, 7, …

8
产生模数红斑
很酷的东西 以下玫瑰色可以帮助计算模7。 为此,您必须从0开始并顺时针旋转第一个数字给出的若干步。然后,对于每个连续的数字,跟随箭头,然后顺时针旋转该数字给出的步数。 这是您处理294号的方法: 您从圈子0开始。 您顺时针旋转第一个数字给定的步数(即2,最终为2)。 您跟随那里的箭头(最终到达6)。 您顺时针旋转第二个数字给出的步数(即9,最终为1)。 您跟随那里的箭头(最终到达3)。 您顺时针旋转第三个数字给定的步数(即4,最终为0)。 294 mod 7 = 0(意味着294是7的倍数)。 (如果您仍然听不到视频说明) 目标 弄清楚它是如何工作的(我知道,但我不会告诉你)。 创建一个程序,该程序使用一个带数字n的参数,并为生成一个玫瑰红mod n。 玫瑰色可以通过任何您想要的方式显示(ASCII,生成PNG,生成SVG等),只要它可以被8岁的孩子使用(所以没有规则列表,我想要一张图片)! 您可以使用海峡线,即使它比我在本示例中所做的不够清楚,但您 必须使用某种咬尾箭头清楚地指出指向自己的数字。 测试用例 (我只给出数字之间的链接,一旦您的程序成功生成了它们,请随时编辑我的问题) 模式2: 0 -> 0 1 -> 0 模式3: 0 -> 0 1 -> 1 2 -> 2 模组4: 0 -> 0 1 -> 2 2 …

3
证明我是错的!
介绍 您的人生使命很简单:在互联网上证明人们做错了! 为此,您通常会仔细分析他们的陈述并指出他们之间的矛盾。 现在该使它自动化了,但是由于我们很懒惰,所以我们希望以最小的努力(最短代码)证明人们是错误的。 规格 输入项 您的输入将是合取范式的公式。对于格式,可以根据您的语言需要使用以下格式或定义自己的格式(不过,您可以使用的格式编码不能超过纯CNF)。但是,测试用例(此处)以以下格式提供(尽管生成您自己的用例并不难)。 您的输入将是一个变量列表的列表(您也可以将其读为字符串/需要字符串)。输入是合取范式(CNF)的公式,写为一组子句,每个子句都是两个列表的列表。子句中的第一个列表对正文字(变量)进行编码,第二个列表对负(负)文字(变量)进行编码。子句中的每个变量都进行“或”运算,所有子句都进行“与”运算。 更清楚地说:[[[A,B],[C]],[[C,A],[B]],[[B],[A]]]可以理解为: (A OR B OR (NOT C)) AND (C OR A OR (NOT B)) AND (B OR (NOT A)) 输出量 输出为布尔值,例如某个真实值或一些虚假值。 该怎么办? 很简单:检查手头给出的公式是否可以满足要求,例如,是否对所有变量都分配了true和false,以便整个公式得出“ true”。如果公式可满足要求,则输出将为“ true”,否则为“ false”。 事实:在一般情况下,这是一个NP完全问题。 注意:允许生成真值表并检查结果是否为真。 角落案例 如果您得到一个空的3级列表,则该子句中没有这样的(正/负)变量-有效输入。 如果需要,可以保留其他不确定的情况。 您也可以在公式为空(一级列表)时返回true,在子句为空(二级列表)时返回false。 谁赢? 这是代码高尔夫球,因此最短的答案以字节为单位! 标准规则当然适用。 测试用例 [[[P],[Q,R]],[[Q,R],[P]],[[Q],[P,R]]] -> true [[[],[P]],[[S],[]],[[R],[P]],[[U],[Q]],[[X],[R]],[[Q],[S]],[[],[P,U]],[[W],[Q,U]]] -> true …
22 code-golf  math  logic 

12
多项式感知
给定两个f,g整数的任意多项式的多项式,您的程序/函数应评估第二个多项式中的第一个多项式。f(g(x))(又名两个多项式的合成 (fog)(x)) 细节 允许内置。您可以假定任何合理的格式作为输入/输出,但是输入和输出格式应该匹配。例如格式化为字符串 x^2+3x+5 或作为系数列表: [1,3,5] or alternatively [5,3,1] 此外,可以假定输入多项式被完全展开,并且期望输出也被完全展开。 例子 A(x) = x^2 + 3x + 5, B(y) = y+1 A(B(y)) = (y+1)^2 + 3(y+1) + 5 = y^2 + 5y + 9 A(x) = x^6 + x^2 + 1, B(y) = y^2 - y A(B(y))= y^12 - …

15
计算N的分区
您的挑战很简单:给定一个整数N,输出每个总和为N的正整数列表。例如,如果输入为5,则应输出 [1, 1, 1, 1, 1] [1, 1, 1, 2] [1, 1, 3] [1, 2, 2] [1, 4] [2, 3] [5] 这些列表不必以任何特定顺序输出,每个列表中的数字也不必。例如,这也是'5'的可接受输出: [1, 1, 1, 2] [5] [3, 1, 1] [2, 1, 2] [4, 1] [1, 1, 1, 1, 1] [2, 3] 您可以放心地假设输入将是一个正整数,并且您可以采用任何合理的格式使用此数字。 您不得使用任何内置函数来执行此操作。 如果您的程序失败或对于N而言花费的时间太长,这可以,但是您至少必须为前15个产生正确的输出。 存在标准漏洞,最短的答案以字节为单位! 测试IO 1: [[1]] 2: …

30
N之后的最小整数可被2、3和4整除
归功于应归功于谁。 目的:给定一个整数N > 0,从最小的整数A,B以及C使: 所有的A,B以及C严格大于N; 2分歧A; 3分歧B; 并4划分C。 这是一个代码高尔夫球,因此最短的答案以字节为单位。您可以使用在挑战后制作/更新的语言,但严格来说这是非竞争性的。 测试用例 N => A, B, C 1 => 2, 3, 4 4 => 6, 6, 8 43 => 44, 45, 44 123 => 124, 126, 124 420 => 422, 423, 424 31415 => 31416, 31416, 31416 1081177 => 1081178, 1081179, 1081180
22 code-golf  math  number 

9
打印超级Collat​​z号码
将在Collat​​z序列(也称为3X + 1的问题)是你用任意正整数开始,在这个例子中,我们将使用10和应用这一套步骤吧: if n is even: Divide it by 2 if n is odd: Multiply it by 3 and add 1 repeat until n = 1 10是偶数,所以我们将2除以得到5。5是奇数,所以我们乘以3并加1得到16。16是偶数,因此将其切成两半得到8。8的一半是4,一半4是2,一半是2。因为这花了我们6步,所以我们说10的停止距离为6。 Super Collat​​z数是一个数字,其停止距离大于每个数字的停止距离。例如,6是Super Collat​​z数,因为6的停止距离为8,5的停止距离为5,4的为2,3的为7,2的为1,1的值为 0。(OEIS中的A006877)您必须以数字n作为输入,并输出直到n的所有Super Collat​​z数字。 规则 完整程序或功能是可以接受的。 您无法预先计算或对Super Collat​​z序列进行硬编码。 您可以采用任何合理的格式输入。 输出可以作为功能列表返回,也可以打印到STDOUT或文件中。以最方便的为准。 无效的输入(非数字,小数,负数等)导致未定义的行为。 示例非高尔夫python def collatzDist(n): if n == 1: return 0 if …

13
重点是什么?
编写一个程序或函数,该程序或函数接受两个整数,这些整数表示笛卡尔平面上某点的X和Y坐标。 该输入可以进来任何合理的格式,只要该X值Y.例如之前到来时,1 -2,(1,-2),[1, -2],或1\n-2都将是罚款X = 1,Y = -2。 打印或返回描述该点在平面中位置的单个字符串(后跟可选的尾随换行符): 1如果点在象限 I 2 如果该点在第二象限中 3 如果该点在象限III中 4 如果该点在象限IV中 X如果该点在x轴上(x不允许小写) Y如果点在y轴上(y不允许小写) O 如果该点在原点上(那是一个大写字母“哦”,而不是零) 以字节为单位的最短代码获胜。决胜局将进入投票较高的答案。 测试用例 (1,-2) -> 4 (30,56) -> 1 (-2,1) -> 2 (-89,-729) -> 3 (-89,0) -> X (0,400) -> Y (0,0) -> O (0,1) -> Y (0,-1) -> Y …

22
q是n的二次残基吗?
给定两个输入,q n确定是否q为的二次余数n。 也就是说,有一个x地方x**2 == q (mod n)或者是q一个方形模n? 输入项 两个整数qand n,其中q和n是任意整数0 <= q < n。 输出量 真实或错误。 可选,打印任何(或全部)x是x**2 == q (mod n) 例子 >>> quadratic_residue(1, 5) True >>> quadratic_residue(3, 8) False >>> quadratic_residue(15, 22) True 规则 您的代码必须是程序或函数。输入可以是任何顺序。这是代码高尔夫,因此以字节为单位的最短代码获胜。 如果有任何不清楚或需要修复的地方,请告诉我。 奖金 如果您的函数接受q为任意整数,则为2字节奖励。 目录 var QUESTION_ID=65329;var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";var COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk";var OVERRIDE_USER=47581;var answers=[],answers_hash,answer_ids,answer_page=1,more_answers=true,comment_page;function answersUrl(index){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(index,answers){return"http://api.stackexchange.com/2.2/answers/"+answers.join(';')+"/comments?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:true,success:function(data){answers.push.apply(answers,data.items);answers_hash=[];answer_ids=[];data.items.forEach(function(a){a.comments=[];var id=+a.share_link.match(/\d+/);answer_ids.push(id);answers_hash[id]=a});if(!data.has_more)more_answers=false;comment_page=1;getComments()}})}function …

28
颠倒真相
编写程序或函数以: 从stdio或参数中获取一个字符串 替换所有出现true与false和false与true 扭转它,但不扭转true和false 返回或打印结果 示例(输入为左侧): "true" "false" "2false" "true2" "true is false" "true si false" "false,true,undefined" "denifednu,false,true" "stressed-false" "true-desserts" "falstrue" "falseslaf" "true false true x" "x false true false" 有标准漏洞。这是代码高尔夫球,因此以字节为单位的最短代码获胜。 排行榜 显示代码段 var QUESTION_ID=63256,OVERRIDE_USER=20569;function answersUrl(e){return"http://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"http://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 r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var …

30
写出摩尔定律
这个站点上有很多挑战,要求您打印一个序列,这也不例外。 (此挑战序列的以下说明假定序列中的符号为0和1。) Thue-Morse序列的递归定义是 T_0 = 0 T_2n = T_n T_2n+1 = 1 - T_n 一个更直接的定义是,从0到2**m-1和的序列2**m to 2**(m+1)-1是二进制补码。因此0,其后是1,之后是,01之后是10,0110然后是1001和,向前跳了一点,0110100110010110之后是1001011001101001。 面临的挑战是编写一个程序或函数来打印出第一个元素的Thue-Morse序列n,其中n任何非负整数都是。输出可以使用任何两个符号,如下例所示。 例子 >>> tm_01(20) 01101001100101101001 >>> tm_ab(42) abbabaabbaababbabaababbaabbabaabbaababbaab >>> tm_paren(37) ())()(())(()())()(()())(())()(())(()( >>> tm_space_star(12) ** * ** * >>> tm_01(0) # to show that this is a valid input 规则 输入将是任何非负整数。您可以假设所有输入均有效。 输出必须是nThue-Morse序列的第一个元素,使用任何方便的符号。如果愿意,还可以添加分隔符。在我的示例中,我没有。 注意:此规则允许使用列表(如Python的列表),这,是有效的分隔符,我不介意输出中的[和开头或结尾的字符]。 这是代码高尔夫,因此最少的字节数获胜。 …

14
欧几里得算法(用于找到最大公约数)
挑战 编写一个程序或函数,它接受两个输入整数i和j,并输出它们的最大公约数;通过使用欧几里得算法计算得出(见下文)。 输入项 输入可以作为和的空格分隔的字符串表示形式i,j或作为两个单独的整数。您可以假设整数将小于或等于10,000。您还可以假定输入整数不会互为素数。 欧几里得分解 之间的较大数量i和j由较小的分割多次可能的。然后,添加其余部分。对剩余数和前一个数字重复此过程,直到剩余数变为0。 例如,如果输入为1599 650: 1599 = (650 * 2) + 299 650 = (299 * 2) + 52 299 = (52 * 5) + 39 52 = (39 * 1) + 13 39 = (13 * 3) + 0 最终数字13是两个输入整数的最大公约数。它可以像这样可视化: 输出量 您的输出必须是上面表格中的细分,然后是换行符和GCD。可以通过任何介质输出。 例子 输入项 18 27 …
22 code-golf  math 

14
Khinchin的常数,以64个字节或更少的字节为单位
Khinchin常数是一个奇怪的数学常数,根据Wolfram MathWold的说法,“众所周知,很难高精度地计算出来”。 这是100位数字: 2.685452001065306445309714835481795693820382293994462953051152345557218859537152002801141174931847697 ... 编写一个不超过64个字节的程序,以输出Khinchin常数到正确的小数位数的最大数量。 您不得使用任何与Khinchin常数直接相关的内置库常数或函数。(例如,绝对不允许Math.Khinchin(precision)。) 您可以使用数学库来计算对数,求和等。 您可以对全部或部分答案进行硬编码。 您的程序必须产生有限的输出,并且必须在一台相当现代的计算机(例如此处列出的计算机)上运行少于一小时。 您必须输出到stdout。没有输入。 只要http://mothereff.in/byte-counter注册64个字节或更少的字节,就可以使用任何所需的字符。 计分 您的分数是程序从2.68开始正确输出的Khinchin常数中连续数字的位数。您可能会输出不正确的数字,但只有最后一个正确的数字会计入您的分数。 例如,输出 2.68545200 2 06530644530971483548179569382038229399446295305115234234721 得9分。每个数字一个,2 6 8 5 4 5 2 0 0但在2之后不应该是1。

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

7
反向工程师轮询统计
介绍 给定民意测验中的一组选择百分比,请计算民意测验中必须存在的最少选民人数才能生成这些统计数据。 示例:您最喜欢的宠物是什么? 狗: 44.4% 猫: 44.4% 老鼠: 11.1% 输出:(9最少可能的选民人数) 眼镜 这是您的程序/功能的要求: 您将得到一个百分比值数组作为输入(在stdin上,作为函数参数等)。 每个百分比值都是一个四舍五入到小数点后一位的数字(例如44.4 44.4 11.1)。 计算民意测验的最小可能投票人数,当四舍五入到小数点后一位(标准输出或函数返回值)时,其投票结果将产生准确的百分比。 奖励:-15个字符,如果您可以“非平凡”的方式解决(即不涉及遍历所有可能的选民,直到找到第一个可行的选民) 例 >./pollreverse 44.4 44.4 11.1 9 >./pollreverse 26.7 53.3 20.0 15 >./pollreverse 48.4 13.7 21.6 6.5 9.8 153 >./pollreverse 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 99.6 2000 >./pollreverse 0.1 …

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.