Questions tagged «number»

旨在通过使用,操纵,接受输入或输出数值来解决此难题。

26
奇数偶数,正负数
给定N,输出此无限序列的第N个项: -1 2 -2 1 -3 4 -4 3 -5 6 -6 5 -7 8 -8 7 -9 10 -10 9 -11 12 -12 11 ... etc. 您可以根据需要将N索引为0或1。 例如,如果0索引然后输入0,1,2,3,4应该产生相应的输出-1,2,-2,1,-3。 如果1索引然后输入1,2,3,4,5应该产生相应的输出-1,2,-2,1,-3。 需要明确的是,该序列是通过将两次重复的正整数序列生成的 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 …

20
计算Carmichael函数
任务描述 在数论中,Carmichael的函数 λ取正整数 Ñ并返回最小正整数ķ使得ķ的每个整数次幂互质到Ñ等于1个模Ñ。 给定正整数n,您的解决方案必须计算λ(n)。以字节为单位的最短代码获胜。 从理论上讲,您的程序应该可以为任意大的输入工作,但是并不需要高效。 提示 所有λ(n)的序列为OEIS A002322。 非高尔夫的Python实现看起来像 from fractions import gcd def carmichael(n): coprimes = [x for x in range(1, n) if gcd(x, n) == 1] k = 1 while not all(pow(x, k, n) == 1 for x in coprimes): k += 1 return k (在Python中,pow(A, B, …

30
使硬币公平
您有一枚可产生0或的硬币1。但是您怀疑硬币可能有偏差,这意味着0(或1)的概率不一定是1/2。 由冯·诺伊曼(von Neumann)提出的一种众所周知的将“有偏见的硬币”“转化”为公平硬币的过程(即获得同样可能的结果)如下。产生(不重叠)两个掷硬币的区块,直到一个区块的两个值不同为止;并在该块中输出第一个值(第二个值也可以,但是出于挑战的目的,我们选择第一个)。直观地看,1可能比更容易0,但01和10将同样有可能。 例如,输入1110...将丢弃第一个块,然后1从第二个块产生a ,... 此过程很昂贵,因为要消耗多个硬币才能产生单个结果。 挑战 取零和一的有限序列(代表原始硬币的抛弃),并根据上述过程产生最大数量的结果,直到消耗完所有输入为止。 如果输入值的数量为奇数,则最后一个块可能不完整。例如,输入序列11111将不产生结果(前两个块具有相等的值,而第三个块不完整)。 规则 输入可以具有任意数量的非负值,不一定是正数或偶数。 输入格式可以是: 零和一的数组; 一串零和一,并带有可选的分隔符。 输出格式可能是: 一串零和一,带或不带分隔符; 零和一的数组; 包含单个零或一的字符串,以换行符分隔; 适合您的语言的任何相似,合理的格式。 代码高尔夫。最少的字节数获胜。 测试用例 这里假定输入和输出为字符串。 Input --> Output '1110' --> '1' '11000110' --> '01' '1100011' --> '0' '00' --> '' '1' --> '' '' --> '' '1101001' --> '0' '1011101010' --> '1111'

7
数字作为圆形图形
首先,研究这个难题以了解您将要产生的东西。 您面临的挑战是编写一个程序或函数,该程序或函数将输出一个圆形图形(类似于拼图中的图形),并给出(以10为基数)介于1和100(含)之间的数字。这类似于此挑战,除了您将生成图形而不是罗马数字。以下圆圈从左到右代表数字1-10: 作为对谜题状态的答案,您的图形应该从内到外看起来像罗马数字,其中线条粗细代表罗马数字符号,整个图形代表数字。供您参考,这是您需要的线宽。每行和下一行之间应有3px的填充。 Number Roman Numeral Line Width 1 I 1px 5 V 3px 10 X 5px 50 L 7px 100 C 9px 请发布您的输出中的一两个示例。假设输入正确,标准漏洞等等。这是代码高尔夫,所以最少的字节获胜。如果出现平局,大多数选票将获胜。祝好运!

5
字母,数字,符号,空格,重复
人们经常会遇到97个ASCII字符。它们分为四类: 字母(共52个) ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 数字或数字(共10个) 0123456789 符号和标点符号(共32个) !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 空格(共3个) 空格 ,制表符\t和换行符\n。(我们会将换行符\r\n视为一个字符。) 为简洁起见,我们将这些类别分别称为L,N,S和W。 选择LNSW您想要的字母的24个排列中的任意一个,然后无限重复,以形成自己的编程模板。 例如,您可以选择permutation NLWS,因此您的编程模板为: NLWSNLWSNLWSNLWSNLWS... 您需要基于此模板编写程序或函数,其中: 每个L字母都替换为任何字母(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz)。 每个数字N都替换为任何数字(0123456789)。 每个S符号均替换为任何符号(!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)。 每个W都将替换为任何空格字符( \t\n)。 基本上,您的代码必须遵循以下模式 <letter><number><symbol><whitespace><letter><number><symbol><whitespace>... 如问题标题所建议的那样,除非您可以根据需要选择四个字符类别的不同顺序。 注意: 类别的替换可以是不同的字符。例如,9a ^8B\t~7c\n]有效地符合模板NLWSNLWSNLWS(\t和\n将它们的字面字符)。 没有代码长度限制。例如1A +2B -and 1A +2B和1A and 1都符合模板NLWSNLWSNLWS...。 符合模板的代码必须执行的操作是接受一个未扩展的ASCII字符,并根据其在上述分类中所属于的类别,输出一个介于0到4之间的数字。也就是说,1如果输入是字母,2数字,3符号和4空格,则输出。输出0如果输入是没有这些(一个控制字符)。 对于输入,您可以选择输入0到127之间的一个数字(包括0和127),代表输入ASCII字符的代码。 您的代码必须具有的输入(作为char代码)和输出对如下所示: in out 0 0 1 0 2 0 3 0 4 0 5 …

30
我反转了源代码,您否定了输入!
公然敲竹杠一个的敲竹杠。去投票那些! 您的任务(如果希望接受)是编写一个程序/函数,该程序输出/返回其整数输入/参数。棘手的部分是,如果我反转源代码,则输出必须是取反的原始整数。 例子 假设您的源代码为ABC,其输入为4。如果我CBA改为编写并运行它,则输出必须为-4。 假设您的源代码为ABC,其输入为-2。如果我CBA改为编写并运行它,则输出必须为2。 输入的0可能为0或-0,但是,如果您确实支持带符号的零,-0则应为0。

21
NxNxN Rubik多维数据集上的置换数量
介绍: 3x3x3魔方具有可能的排列,大约为43 亿个。您可能之前已经听说过这个数字,但是实际上是如何计算的呢?43 ,252 ,003 ,274 ,489 ,856 ,00043,252,003,274,489,856,00043,252,003,274,489,856,000 3x3x3魔方有六个面,每个面有九个贴纸。看(外部)件而不是贴纸,我们有六个中心件。八个角块;和十二个边缘碎片。由于中心不能移动,因此我们可以在计算中忽略它们。至于拐角和边缘: 有()排列八个角的方法。每个角都有三个可能的方向,尽管(八个中的)只有七个可以独立地定向。在给定()可能性的情况下,第八个/最后一个角的方向取决于前面的七个。8 !8!8!40 ,32040,32040,32037373^72 ,1872,1872,187 有()种方式来排列十二条边。从减半这是因为恰好在拐角处时,边缘必须始终保持均匀的排列。在给定()的可能性的情况下,第十二个/最终边缘的翻转取决于前面的十一个,因此可以独立翻转十一个边缘。12 !212!2\frac{12!}{2}239 ,500 ,800239,500,800239,500,80012 !12!12!2112,0482112112^{11}2 ,0482,0482,048 综上所述,我们有以下公式: 8 !× 37× 12 !2× 211= 43 ,252 ,003 ,274 ,489 ,856 ,0008!×37×12!2×211=43,252,003,274,489,856,0008!×3^7×\frac{12!}{2}×2^{11} = 43,252,003,274,489,856,000 资料来源:维基百科-Rubik的立方体排列 尽管这看起来可能已经很复杂了,但对于3x3x3多维数据集来说仍然相当简单。对于偶数立方体,公式略有不同。例如,这是4x4x4多维数据集的公式: 8 !× 37× 24 !2247= 7 ,401 ,196 ,841 ,564 ,901 ,869 …

30
高效计数
当我还是个孩子的时候,想算一算生活中的美元钞票时,我会大声数出: 一,二,三,四,五,六,七,八,九,十; 十一,十二,十三,十四,十五,十六,十七,十八,十九,二十; 21、22、23、24、25 ... 最终我厌倦了念出这些多音节数字。出于数学考虑,我创建了一种更有效的计数方法: 一,二,三,四,五,六,七,八,九,十; 一,二,三,四,五,六,七,八,九,二十; 一,二,三,四,五,六,七,八,九,三十... 如您所见,我只会说出与前一个数字已更改的数字。这还有一个额外的优势,即它比数字的英文名称具有更大的重复性,因此需要较少的脑力来进行计算。 挑战 编写一个程序/函数,该程序接受一个正整数,然后输出/返回我将如何对其进行计数:即,最右边的非零数字和所有尾随的零。 例子 1 1 2 2 10 10 11 1 29 9 30 30 99 9 100 100 119 9 120 20 200 200 409 9 1020 20 不需要完整的测试用例列表。这是OEIS上的A274206。 规则 理论上,您的条目必须适用于所有正整数,而忽略精度和内存问题。 输入和输出必须为十进制。 您可以选择将输入和/或输出作为数字,字符串或数字数组。 输入保证为正整数。您的输入可以为无效输入做任何事情。 这是code-golf,因此以字节为单位的最短代码获胜。
35 code-golf  number 

30
像一二三一样容易
编写一个使用正整数的程序或函数。您可以假定输入有效,并且可以将其作为字符串。如果数字是以下任何一个 123 234 345 456 567 678 789 然后输出真实值。否则,输出一个伪造的值。例如,输入 1 2 3 12 122 124 132 321 457 777 890 900 1011 1230 1234 必须全部导致虚假输出。(输入不会有前导零,因此您不必担心诸如此类的东西012。) 以字节为单位的最短代码获胜。

9
蛇化字符串
修饰后的字符串如下所示: T AnE eOf ifi ing h s x l A k e r isI amp Sna dSt 你的任务 取一个字符串s和一个size n,然后输出连串的字符串。输入ThisIsAnExampleOfaSnakifiedString和3将产生上面的示例。 技术指标 s 只会在代码点33和126之间(含端点)包含ASCII字符(不包含空格或换行符)。 s 长度在1到100个字符之间。 n是一个整数,代表每个输出字符串段的大小。组成“蛇”中曲线的每一行字符(上/下或左/右)都是n字符长。有关示例,请参见测试用例。 n 介于3到10之间(含3和10)。 输出字符串始终开始指向下方。 每行上都可以使用尾随空格。 在输出末尾也可以尾随换行符。 不允许前导空格。 code-golf表示以字节为单位的最短代码获胜。 测试用例 a 3 a ---------- Hello,World! 3 H Wor e , l llo d! ---------- ProgrammingPuzzlesAndCodeGolf …
35 code-golf  string  ascii-art  code-golf  code-golf  string  balanced-string  decision-problem  code-golf  string  geometry  grid  code-golf  tips  lisp  code-golf  quine  tips  king-of-the-hill  code-challenge  math  code-golf  string  palindrome  math  fastest-code  code-golf  string  counting  code-golf  code-golf  internet  code-golf  quine  source-layout  hello-world  code-golf  math  number  sequence  arithmetic  code-golf  ascii-art  grid  code-golf  number  grid  code-golf  string  crossword  code-golf  code-golf  ascii-art  grid  counting  code-golf  code-golf  math  sequence  arithmetic  number-theory  code-golf  code-golf  graphical-output  geometry  random  code-golf  ascii-art  grid  counting  code-golf  string  ascii-art  code-challenge  test-battery  code-golf  string  code-golf  ascii-art  kolmogorov-complexity  code-golf  interpreter  code-golf  math  sequence  code-golf  math  primes  set-partitions  code-golf 

22
将数组变成数学题
给定非负整数的非空列表,请考虑将其重写为算术问题,其中: +在成对的数字之间插入一个加号(),这些数字从左到右递增(也就是从列表的开头到结尾)。 -在从左到右递减的数字对之间插入一个减号()。 *在成对的数字对之间插入一个乘号()。 换一种说法:if ,if 和if a,b会成为任何子列表。a+ba<ba-ba>ba*ba==b 例如清单 [12, 0, 7, 7, 29, 10, 2, 2, 1] 将成为表达 12 - 0 + 7*7 + 29 - 10 - 2*2 - 1 结果为 75。 编写一个包含此类列表并对其进行评估,打印或返回结果的程序或函数。 操作顺序很重要。乘法应该在任何加法或减法之前完成。 如果输入列表中有一个数字,那应该是它的计算结果。例如[64]应该给64。 使用eval或exec或类似结构是允许的。 以下是一些其他示例: [list] expression value [0] 0 0 [1] 1 1 [78557] 78557 …

28
在Champernowne常数中找到数字
介绍 在基数10中,通过串联连续整数的表示来定义Champernowne常数。以10为底:0.1234567891011121314151617...依此类推。 您可以看到首次出现是15从20th小数点开始的: Position 0000000001111111111222222222233333333334444444444555555555566666666 1234567890123456789012345678901234567890123456789012345678901234567 ^ 0.1234567891011121314151617181920212223242526272829303132333435363738... ^^ 15 = position 20 第一次出现是45从4th小数点开始: Position 0000000001111111111222222222233333333334444444444555555555566666666 1234567890123456789012345678901234567890123456789012345678901234567 ^ 0.1234567891011121314151617181920212223242526272829303132333435363738... ^^ 45 = position 4 因此,任务很容易。给定一个非负整数,输出该整数在Champernowne常数中的位置。 规则 您可以提供功能或程序 这是代码高尔夫球,因此以最少的字节提交为准! 测试用例 Input: 20 Output: 30 Input: 333 Output: 56 Input: 0 Output: 11 (note that the 0 before the decimal point is …
35 code-golf  math  number 

10
压缩这些页码!
免责声明:虽然我现在已经出于娱乐目的而在此网站上停留了一段时间,但这是我的第一个问题,因此请原谅任何小错误。 背景 当给我们分配作业时,我的老师确实很烦人,并写出了我们必须单独处理的所有问题。因此,我花了很长时间来抄写我必须做的问题。我想让我的生活更轻松,我会给他发送一个程序,该程序可以使问题列表占用更少的空间。 写下页面或问题编号的列表时,我们用破折号表示范围。例如,19-21变为19, 20, 21。如果两者之间有间隔,则使用两个逗号分隔的范围:19-21, 27-31变为19, 20, 21, 27, 28, 29, 30, 31。 现在,您可能正在思考:“这似乎很琐碎”。实际上,这已经在这里和这里得到了解答。 但是,有一个陷阱。如果我们有一个相等的连续数字范围,则可以省去重复的数字。例如:15, 16, 17成为15-7和107, 108, 109成为107-9。作为奖励,如果最后一个连续的相等数字大1,并且上限的最后一个数字小于或等于下限,则可以省略以下内容(对不起,这听起来令人困惑;也许有些示例可以清除它) 。109-113变为109-3,因为最后一位低表示增加10位。 挑战 您的程序应通过输入获取整数列表(无论您的语言是标准语言还是函数)。您可以决定此列表是逗号分隔,空格分隔还是实际的列表/数组。 输出最短的方法(首先按范围数排序,然后按范围内的字符总和排序)以使用此表示法表示该列表。每个虚线范围必须在同一行上,但是范围可以用逗号或换行符分隔(允许使用尾随的换行符或逗号)。这些范围必须是有序的。 由于我们学校的Wi-Fi非常糟糕,我必须将文件制作得尽可能小才能发送给他。最短的代码(以字节为单位)获胜。 奖金 我的老师草率,所以有一些事情可以帮助他。多个奖金通过乘法叠加,例如-10%奖金(x 90%)和-25%(x 75%)奖金= 90%* 75%= x 67.5%(-32.5%奖金)。 有时他把它们放在错误的顺序(他不是数学老师)。如果您的程序可以接受未按最小到最大排序的整数,则收取-20%的奖金。 我们的书很奇怪,每一节都从-10开始计算问题。如果您的程序可以接受负数,则取-25%。 如果它接受较低的最后一位数字的奖金,该奖金增加10位,例如25-32减少到25-2,则获得-50%的奖金。 测试用例 In: 1, 2, 3, 4, 5 Out: 1-5 In: 3, 4, 5, 9, …

30
生成星期一号码
在这个问题上,由Gamow定义的星期一数字是正整数N,具有以下三个属性: N的十进制表示形式不包含数字0 N的十进制表示形式两次不包含任何数字 N可被以十进制表示形式出现的每个数字D整除 请注意,这些在OEIS中也称为Lynch-Bell编号。 例子: 15是一个星期一数字,因为它可以被1和整除,5并且满足其他两个条件 16不能,因为它不能被整除6。 该数字22不是,因为尽管它满足条件1和3,但没有满足条件2。 这是让您入门的前25个星期一数字的列表(共有548个): 1 2 3 4 5 6 7 8 9 12 15 24 36 48 124 126 128 132 135 135 162 168 175 184 216 248 这里的挑战是编写最短的代码来生成星期一数字的完整序列,范围从1到9867312(在该问题上证明是最大的可能)。 您的代码应不带输入,而输出应为STDOUT或同等格式,并选择分隔符。所有常用的代码高尔夫球规则均适用,并且禁止标准漏洞。 排行榜 显示代码段 var QUESTION_ID=59014,OVERRIDE_USER=42963;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 …

18
计算电话号码(包括字母)中的旋转拨号脉冲
在您的祖父母节那天,使用旋转式拨号拨打电话号码是这样的: 要拨出每个数字,将手指放在相应的孔中,将其拉到手指挡块上,然后松开。一种机制将使转盘旋转回到其静止位置,并且电话将断开并重新连接电路指定的次数,从而发出喀哒声。 拨数字N需要N个这样的“脉冲”,但N = 0(十个脉冲)除外。 旋转电话的特性是大数字(8、9、0)的拨号时间比小数字(1、2、3)长。这是绘制早期区号地图时的重要考虑因素,也是为什么人口稠密的纽约市(和电话线)的密度为212(仅5个脉冲),而稀疏的阿拉斯加却有907(26个脉冲)。当然,当按键式拨号变得流行时,所有这些都变得无关紧要。 挑战 用尽可能少的字节写一个程序或函数,该程序或函数将包含电话号码的字符串(或字符序列)作为输入,并输出其旋转拨号脉冲数。这些计数如下: 位数 数字1-9计为该脉冲数。 数字0计为10个脉冲。 字母 请注意,表盘上的数字2-9具有与之关联的拉丁字母。这些最初是用于命名交换的,但后来被重新分配给电话词和文本消息输入系统。 您必须使用E.161将字母分配给数字来支持电话号码中包含字母: A,B,C = 2 D,E,F = 3 G,H,我= 4 J,K,L = 5 M,N,O = 6 P,Q,R,S = 7 T,U,V = 8 W,X,Y,Z = 9 您可以假定输入已经被大写或小写了。 其他字符 您必须允许任意使用字符()+-./和空格作为格式分隔符。您可以选择允许任何非字母数字字符用于此目的,如果是更容易实现。 这些字符不会增加脉冲计数。 范例程式码 Python中的非查询表和函数: PULSES = { '1': 1, '2': 2, …
34 code-golf  number 

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.