Questions tagged «number»

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

7
输出基本证明
背景 在某些可能的将来,世界会将其数字系统从十进制(以10 b10为基数或)转换为其他基数(二进制b2,八进制b8,十六进制b16甚至一元b1,在这种情况下,我们很费力!)。因此,为应对这一可能改变世界的事件,您决定对所有程序进行基础验证。这可以通过仅将0s和1s与运算符结合使用以替换现有的数字常量来完成。 但是,只有一个问题:您需要更改大量程序,而将每个数字手动转换为表达式将需要数周!因此,您决定编写一个程序(或函数)来为您确定应替换每个数字的表达式。 输入项 输入将为正整数。您的代码必须能够处理最多1000个整数。 (如果您的代码支持小数和/或负输入,请参阅下面的评分。) 输出量 您的代码必须以至少一种语言输出计算结果为表达式的表达式。这可以是任何语言;它不一定要与您编写的程序或函数相同。此外,此表达式也不必是完整的程序或函数。 为了清楚起见,输出可能包含以下任何操作: 递增/递减 加/加 减去/取反 乘/双(仅在不直接涉及数字的情况下2!) 除法/取模 指数/对数 平方/平方(再次,仅当这些不直接涉及数字时2!) 按位运算(bOR,bAND,bNOT,bXOR,移位) 设置/获取变量 堆栈操作 你可能不使用eval()或输出的任何类似的功能。您也可能在输出中不使用执行上述功能以外的任何功能的功能。 哦,还有另一件事:由于我们希望输出在尽可能多的底数内有效,因此它可能包含的唯一数字常量是0and 1。10除非(ten)这样的数字是不允许的,除非该语言将其解释为a 1和a 0。也不允许使用字符串包含数字,就像使用CJam的A- K(代表10- 20)这样的字符一样,也是不允许的。 测试用例 (所有输出均使用JavaScript,但可以使用其他语言。) 输入1: 2 可能的输出1: 1+1 输入2: 13 可能的输出2: (a=1+1+1)*a+a+1 输入3: 60 可能的输出3: (b=(a=1+1+1+1)*a)*a-a 输入4: 777 可能的输出4: (c=(b=((a=1+1+1+1)*a-a+1)*a)*a+b)+c+c-a+1 输入5: 1000 可能的输出5: Math.pow((a=1+1+1)*a+1,a) 计分 …

12
ASCII Maya数字
编写一个程序或函数,在给定正整数作为输入的情况下,以Maya数字输出该整数的表示形式。 玛雅数字 Maya数字是仅使用3个符号的原始系统(以20为基数): < >对于零(正确的符号是某种不能轻易使用ASCII来表示外壳的)。 .对于一个 ----对于五 数字以20的幂垂直写入,0到19之间的数字以5和1的堆栈形式写入。您应参阅Wikipedia文章以获取更多详细信息。 例如,以下是0到25之间的数字,以逗号分隔: . .. ... .... . .. ... .... ---- ---- ---- ---- ---- . . . . . . . .. ... .... ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- < >, . , .. ,... ,....,----,----,----,----,----,----,----,----,----,----,----,----,----,----,----,< >, …

6
中国剩余定理
在中国剩余定理告诉我们,我们总能找到一些能产生下不同的素模所需的任何剩余物。您的目标是编写代码以在多项式时间内输出这样的数字。最短的代码胜出。 例如,假设我们得到了以下约束(%代表mod): n % 7 == 2 n % 5 == 4 n % 11 == 0 一种解决方案是n=44。第一个条件满足,因为44 = 6*7 + 2,所以44有剩余2时,除以7,因此44 % 7 == 2。也满足了其他两个约束。还有其他解决方案,例如n=814和n=-341。 输入项 对的非空列表(p_i,a_i),其中每个模数p_i是一个不同的质数,每个目标a_i是该范围内的自然数0 <= a_i < p_i。您可以采用任何方便的形式进行输入。它实际上不一定是对列表。您可能不认为输入已排序。 输出量 这样的整数n,以便n % p_i == a_i于每个索引i。该值不必是最小值,也可以是负数。 多项式时间限制 为了防止廉价的解决方案,只是尝试n=0,n=1,n=2,等等,你的代码必须在多项式时间在运行中输入的长度。请注意,m输入中的数字具有length Θ(log m),因此m其长度不是多项式。这意味着您最多不能计数m或不能进行一次运算m,但是可以对这些值进行算术运算。 您可能不会使用像一元这样的低效率输入格式来解决此问题。 其他禁令 不允许执行以下操作的内置函数:实现中国余数定理,求解方程式或因数。 您可以使用内置函数查找mod并进行模块化加法,减法,乘法和乘幂运算(使用自然数指数)。您可能不使用其他内置的模块化操作,包括模块化逆运算,除法和查找顺序。 测试用例 这些给出最小的非负解。您的答案可能有所不同。如果直接检查输出是否满足每个约束,可能会更好。 [(5, 3)] …

9
计算Collat​​z表兄弟
为正整数n定义函数f(n),如下所示: n / 2,如果n是偶数 3 * n +1,如果n为奇数 如果您将此功能重复应用到任何 大于0的 n,则结果似乎总是收敛到1(尽管尚无人能​​够证明这一点)。此属性称为Collat​​z猜想。 将整数的停止时间定义为必须通过Collat​​z函数f传递它的次数。达到1之前必须。这是前15个整数的停止时间: 1 0 2 1 3 7 4 2 5 5 6 8 7 16 8 3 9 19 10 6 11 14 12 9 13 9 14 17 15 17 让我们用相同的停止时间呼叫任何一组数字 Collat​​z表兄弟的数字。例如,5和32是Collat​​z表兄弟,停止时间为5。 您的任务:编写一个程序或函数,该程序或函数采用一个非负整数并生成一组Collat​​z表兄弟,其停止时间等于该整数。 输入项 通过STDIN,ARGV或函数参数指定的非负整数S。 输出量 它的停止时间是S所有的数字列表,排序中升序的顺序。该列表可以由您的程序输出,也可以由您的函数返回或输出。输出格式是灵活的:只要数字之间可以容易地区分,空格就可以了,换行​​符可以换行,或者您的语言的任何标准列表格式都可以。 要求 …

11
计算Hausdorff距离
介绍 在豪斯多夫距离测量度量空间的两个子集之间的差异。直观地来说,度量空间只是带有内置距离函数的某个集合。在这个挑战中,我们将使用具有普通距离的自然数d(a, b) := abs(a - b)。两个非空有限集之间的Hausdorff距离A和B由下式给出 max(max(min(d(a, b) for b in B) for a in A), max(min(d(a, b) for a in A) for b in B)) 以类似Python的符号表示。Hausdorff距离的计算方法是:找到与A的最近元素的B距离最大的元素B,与到的最近元素的A距离最大的元素,然后取这些距离中的最大值。换句话说,如果Hausdorff距离为d,则的每个元素A都在d的某个元素的距离内B,反之亦然。 输入项 您的输入是一个整数列表。它仅包含元素0,1,2,3,这意味着该列表的给定索引是否是的元件既不A也不B,仅A仅B或两者A和B。例如,输入[0,1,1,0,2,3]表示A = {1,2,5}和B = {4,5},如果我们使用基于0的索引(这没有区别,因为我们的度量标准是转换不变的)。 输出量 您的输出是A和之间的Hausdorff距离B。在上面的示例中,它是3。如果任何一组为空,则距离没有定义,您应返回-1。 规则 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 [] -> -1 [0] -> -1 [0,1,0] -> -1 [2,0,0,2] -> …

6
时间旅行股票交易者
故事 很久以前,鲍比(Bobby)用1个中本聪(1e-8 BTC,最小货币单位)创建了一个比特币钱包,却忘了它。像许多其他人一样,他后来也说“该死,如果我再投资更多……”。 他不停地做白日梦,他将所有的时间和金钱都献给了建造时光机。他将大部分时间都花在车库里,没有意识到世俗的事情和关于他的谣言。由于缺电,他将在即将关闭电源的前一天完成样机。从工作台上抬起头来,他看到一辆警车驶向他的房子,看上去像个爱管闲的邻居,以为他在自己的车库里经营一个冰毒实验室,并叫警察。 由于没有时间进行测试,他用过去几年的汇率数据获取USB记忆棒,将Flux电容器连接到Quantum Discombobulator,并发现自己回到了创建钱包的那一天 任务 根据汇率数据,找出鲍比能赚多少钱。他遵循一个非常简单的规则:“低买高卖”,并且由于他以无限小的资金开始,所以我们认为他的行为不会对未来的汇率产生影响。 输入 浮点数> 0的列表,可以是用单个字符(换行符,制表符,空格,分号,可以根据需要选择的任何字符)分隔的字符串,作为命令行参数传递给程序,从文本文件或STDIN中读取或作为参数传递功能。您可以使用数字数据类型或数组而不是字符串,因为它基本上只是带括号的字符串。 输出 Bobbys资本乘以交易结束所乘的因子。 例 Input: 0.48 0.4 0.24 0.39 0.74 1.31 1.71 2.1 2.24 2.07 2.41 汇率:0.48 $ / BTC,因为它即将下降,所以我们以4.8纳元的价格出售所有比特币。因子= 1汇率:0.4,不执行任何操作 汇率:0.24 $ / BTC并上涨:将所有$转换为2 Satoshis。因子= 1(美元价值仍然保持不变) 汇率:0.39-2.1 $ / BTC:不做任何事情 汇率:2.24 $ / BTC:在下跌之前卖出所有东西。44.8纳米美元,系数= 9.33 汇率:2.07美元/ BTC:买入2.164聪,系数= 9.33 汇率:2.41美元/ …

30
e的近似值
我们都知道,用麦克劳林级数展开式可以近似地表示出用e表示的欧拉数对某些变量x的幂次: 通过让x等于1,我们得到 挑战 通过输入N,以任何近似欧拉数的语言编写程序,并计算第N个项的级数。注意,第一项的分母为0 !,而不是1 !,即N = 1对应于1/0!。 计分 字节数最少的程序获胜。

24
十针保龄球得分-世界保龄球版
世界保龄球计分 许多人去了当地的保龄球中心打了几场保龄球,而且许多人仍在努力计算分数。世界保龄球馆引入了简化的计分系统,以吸引更多的人参加这项运动。该计分系统用于国际比赛。 计分系统的工作方式如下(来自Wikipedia): 世界保龄球计分系统(称为“当前帧计分” [32])按以下方式授予图钉: 罢工:30(无论随后的掷骰结果如何) 备用:当前帧的第一卷上有10多个掉落 打开:当前帧的总落差 如果您不熟悉十针保龄球,这里有个回顾。 保龄球道的尽头有10个插脚,目标是用保龄球将它们全部击倒。您得到2卷球来尝试将它们全部击倒,最好是在第一卷时将它们全部击落(称为打击)。如果确实有罢工,则说明该帧已经完成,您无需再次掷球。罢工价值30。 如果您没有全部淘汰十人,您将获得一卷。如果您击倒所有其余的引脚,则称为备用。得分价值10针+第一卷击倒的针数。例如,如果我击倒7个针脚,然后设法击倒其余3个针脚,那将值17。 如果在第二次掷骰后未能击倒全部十个骰子,则称为开架。得分值相当于该帧被击倒的引脚总数。 一个游戏中有10帧。如果您熟悉传统的保龄球计分,那么在第10帧中,World Bowling Scoring并不会增加您的得分。在传统的保龄球计分中,需要12次连续击球才能获得300分的完美分数,而世界保龄球计分仅需要连续10次击球。 挑战 您的挑战是从分数表中计算给定值的分数。 在得分表上,未命中用破折号(-),带X的罢工和带斜杠(/)的备用项表示。如果这些都不适用,那么落下数量将简单地用数字(1-9)表示。犯规和分裂也会记录在得分表上,但是您不必担心这些。 输入项 系统会为您提供一个字符串,其中包含每帧的乐谱,总共有10帧。每个帧最多可以有两个值,如果有罢工,则每个帧将只有1个值。您的输入可能是函数的字符串参数,是从文件中还是从STDIN中读取的。 例如,如果我在第一卷上按了1个销,然后按了2个,则框架看起来像“ 12”。这并不意味着12(十二),而是意味着1和2,总计为3。 如果我错过了两个滚子(装订线球)的每个销钉,它将看起来像这样的“-”(0分)。 每个帧将由一个空格分隔。 样品输入 -- 9- -9 X -/ 8/ 71 15 44 X 为了分解这个例子, 框架1(-)-两个投掷都错过了。得分0 帧2(9-)-第一局9落败,第二局错过。得分9 赛局3(-9)-第一局全败,第二局9分。得分9 赛局4(X)-强袭,淘汰了全部10人。得分30 框架5(-/)-备用,第一个错过全部,第2个落下全部失败。得分10 + 0 = 10 框架6(8 /)-备用,第一卷上有8根针,第二卷上的另一根被击倒。得分10 + 8 = …

16
Sigmafy表达
对于那些不知道的人,Sigma 是希腊字母,在数学中被大量用作求和符号。给定一个表示根据表达式的字符串,我们将表示È (ķ ),计算结果之和为È (ķ ),对于每个ķ ∈ { 1 ,2 ,3 ,4 ,5 }。简而言之,您应该找到S使得:kkkE(k)E(k)E(k)E(k)E(k)E(k)k∈{1,2,3,4,5}k∈{1,2,3,4,5}k\in\{1,2,3,4,5\}SSS S=∑k=15E(k)S=∑k=15E(k)S=\sum^5_{k=1}E(k) 表达式的示例:E(k)=k2+k2E(k)=k2+k2E(k)=\frac k 2 + k^2 眼镜 您可以保证: 该表达式有效,因此不包含任何错误,并且取决于所选择的语法(例如:如果仅支持2*k,则不会存在2k) 只能在结果中定义值,因此不会出现1/0,inf或之类的值nan 您可以假定上面的表达式适合您选择的编程语言的限制,因此不会导致溢出或任何其他与限制有关的错误 k可以选择其他任何非空白ASCII字符代替 您的程序必须支持以下操作: 此外(+,plus(),add(),sum()) 减法(-,minus(),subtract()) 幂(**,^,pow()或他人,应注明),与负基地和指数支持 平方根的形式sqrt(k),k^0.5,k**0.5,或者其他但是你想 乘法与除法 提交可以是完整程序,也可以是函数,同时提及其用法 输出时允许任何尾随/前导空格 最低精度:2位小数 测试案例(带有k) +---------------+--------------+ | Input = E(k) | Output | |---------------+--------------| |2*k | 30 | |---------------+--------------| …

9
莱文施泰因邻居
最平方数具有至少1个不同的平方数与它们的Levenshtein距离正好1.对于一个给定的正方形,每个满足该条件被称为正方形的Levenshtein邻居的。例如,是Levenshtein的邻居,因为只需要1次编辑()。但是,不是Levenshtein的邻居,因为它至少需要进行2次编辑。具有前导0的数字()不是 Levenshtein邻居。Xxxx 36 16 1 → 3 64 16 2025 → 025Xxx3636361616161 → 31→31 \to 36464641616162025 → 0252025→0252025 \to 025 您的任务是将平方数用作输入,并以任何合理的格式输出Levenshtein邻居的完整列表。如果愿意,您可以在列表中包括重复的邻居,但是您可以不包括原始输入,因为它本身不是Levenshtein邻居。 任何合理的格式都应在输出之间包含某种分隔符(例如,或换行符),并且可以输出具有相应Unicode值(即Brainfuck)而不是数字本身的字符。输出的顺序无关紧要。 此输入将始终是大于的平方数。您的程序应该没有理论上的限制,但是如果由于实际原因(例如超过32位数字)而导致大量失败,那就完全可以了。000 如果输入没有任何Levenshtein邻居,则输出必须清楚地反映这一点,例如不输出任何内容,空数组/字符串,负整数,等。000 这是code-golf,因此以字节为单位的最短代码获胜。 测试用例 这些是到的平方的结果:1个11202020 1: 4, 9, 16, 81 4: 1, 9, 49, 64 9: 1, 4, 49 16: 1, 36, 169, 196 25: 225, 256, 625 …

16
古巴总理
给定自然数,返回第个古巴质数。nñnnnn 古巴Prime 古巴素数是形式的素数 p=x3−y3x−yp=x3−y3x−yp = \frac{x^3-y^3}{x-y} 其中且或y>0y>0y>0x=1+yx=1+yx = 1+yx=2+yx=2+yx = 2+y 细节 您可以使用最适合您的索引(基于0或1)。 您可以返回给出的指数个主要或第一按升序排列的素数,或者你可以返回一个无限列表/发电机产生递增的顺序的素数。nñnnñnnñn 测试用例 前几个术语如下: (#1-13) 7, 13, 19, 37, 61, 109, 127, 193, 271, 331, 397, 433, 547, (#14-24) 631, 769, 919, 1201, 1453, 1657, 1801, 1951, 2029, 2269, 2437, (#25-34) 2791, 3169, 3469, 3571, 3889, 4219, 4447, …

22
整数的旋转位置
挑战: 输入: 正整数的排序列表。 输出: 在将每个整数中的数字向左旋转其索引次数并再次对修改后的列表进行排序后,仍处于完全相同索引的整数数量。 例: 输入:[8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788] 输出(基于0的索引):6 输出(基于1的索引):5 为什么? 基于0的索引: After rotating each: [8,94,73,102,592,276,8227,3338,9217,63784,89487,7887471] Sorted again: [8,73,94,102,276,592,3338,8227,9217,63784,89487,7887471] Input indices: 0 1 2 3 4 5 6 7 8 9 10 11 Original input-list: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788] Modified list: [8,73,94,102,276,592,3338,8227,9217,63784,89487,7887471] Modified indices: 0 2 1 3 5 4 7 6 8 9 …

17
整数的平方根距离
给定十进制数k,请找到最小的整数n,以使的平方根n在k整数之内。但是,距离应为非零- n不能是完美的正方形。 给定k,十进制数或分数(以您更方便为准),这样0 < k < 1,输出最小的正整数n,使得的平方根n与最接近的平方根的整数之n差小于或等于k但非零。 如果i是与的平方根最接近的整数n,则寻找第一个n位置0 < |i - sqrt(n)| <= k。 规则 您不能使用语言对非整数的充分实现来解决问题。 否则,您可以假定这k不会导致任何问题,例如,浮点舍入。 测试用例 .9 > 2 .5 > 2 .4 > 3 .3 > 3 .25 > 5 .2 > 8 .1 > 26 .05 > 101 .03 > 288 .01 > 2501 .005 > …

11
N×N板上的骑士图
在国际象棋中,骑士只能相对于其当前位置(♞标记)移动到标记为X的位置: 一个骑士的图形是表示在棋盘的骑士棋子的所有法律动作的图表。此图的每个顶点代表棋盘的一个正方形,每个边都连接两个正方形,这两个正方形彼此分开。 对于标准的8 x 8板,该图看起来像这样。 挑战: 给定整数N,其中3≤N≤8,输出代表一个板的N × N矩阵,其中显示了每个位置的可能移动数。对于N = 8,输出将是一个矩阵,该矩阵显示上图中每个顶点的值。 输出格式灵活。列表列表甚至是扁平列表等都是可接受的格式。 完整的测试用例集: --- N = 3 --- 2 2 2 2 0 2 2 2 2 --- N = 4 --- 2 3 3 2 3 4 4 3 3 4 4 3 2 3 3 2 --- N …

18
上还是下Wythoff?
首先,让我们谈谈Beatty序列。给定一个无理数正数r,我们可以通过将正整数乘以r并乘以每个结果计算的底数来构造无限序列。例如, 如果r > 1,则有特殊条件。我们可以形成另一个无理数s,即s = r /(r -1)。然后,这可以生成自己的Beatty序列B s。巧妙的技巧是B r和B s是互补的,这意味着每个正整数都恰好在两个序列之一中。 如果我们将黄金比例设置为r = then,则得到s = r + 1和两个特殊序列。该低Wythoff序列为[R : 1, 3, 4, 6, 8, 9, 11, 12, 14, 16, 17, 19, 21, 22, 24, 25, 27, 29, ... 和上部Wythoff序列为小号: 2, 5, 7, 10, 13, 15, 18, 20, 23, 26, 28, …

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.