Questions tagged «math»

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

16
加号和时代,一个人和一个人
将该递归关系实现为输入和输出非负整数的函数或程序: F(0)= 0 F(N)=大于F(N-1)的最小整数,以使其基数10的总和和/或乘积为N N是程序的输入,而F(N)是程序的输出。 要清楚的是,像913这样的数字中的数字总和为9 + 1 + 3 = 13。乘积为9×1×3 = 27。对于一位数字,总和与乘积是相同的数字。包含0的数字当然具有乘积0。 通过F(70)得出的结果是: N F(N) 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 19 11 29 12 34 13 49 14 59 15 69 16 …

13
戈德巴赫分区
哥德巴赫猜想指出,每个大于2的偶数都可以表示为两个素数之和。例如, 4 = 2 + 2 6 = 3 + 3 8 = 5 + 3 但是,一旦达到10,就会发生一些有趣的事情。不仅可以写成10 5 + 5 但也可以写成 7 + 3 因为10可以表示为两个方法的两个素数之和,所以我们说10的“哥德巴赫分区”是2。或更笼统地说, 数字的戈德巴赫分区是不同的书写方式的总数,n = p + q其中p和q是素数,p >= q 您面临的挑战是编写一个找到数字的Goldbach分区的程序或函数。现在,从技术上讲,术语“戈德巴赫分区”仅用于表示偶数。然而,由于奇数整数P + 2可以也可以表示为两个素数的总和如果P> 2为素数,我们将这个扩展到所有正整数(A061358)。 您可以放心地假设您的输入将始终为正整数,并且可以使用我们默认的任何允许方法进行输入和输出,例如函数参数和返回值,STDIN和STDOUT,读取和写入文件等。 最多100个正整数的Goldbach分区为: 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 0, 1, …

19
计算Mertens函数
给定正整数n,计算Mertens函数 M(n)的值,其中 和μ(ķ)是莫比乌斯函数,其中μ(ķ)= 1,如果ķ具有不同的素因子偶数,-1,如果ķ具有奇数个的不同的素因子,和0,如果首要因素是不明显。 这是代码高尔夫球,因此请为计算输入整数n > 0 的Mertens函数的函数或程序创建最短的代码。 这是OEIS序列A002321。 测试用例 n M(n) 1 1 2 0 3 -1 4 -1 5 -2 6 -1 7 -2 8 -2 9 -2 10 -1 117 -5 5525 5 7044 -25 8888 4 10000 -23

11
做自动超对数
给定一个正整数Ñ和若干一个,所述Ñ个迭代幂次的一个被定义为一个 ^(一个 ^(一个 ^(... ^ 一))),其中^表示幂运算(或功率)和表达式包含数一正好ñ倍。 换句话说,四方是右缔合的迭代指数。对于n = 4和a = 1.6,四边形为1.6 ^(1.6 ^(1.6 ^ 1.6))≈3.5743。 相对于n的四次方的逆函数是超对数。在前面的示例中,4是3.5743与“超级基数” 1.6的超级对数。 挑战 给定一个正整数n,找到x,使n是超基数x中其自身的超对数。也就是说,找到x使得x ^(x ^(x ^(... ^ x)))(x出现n次)等于n。 规则 允许的程序或功能。 输入和输出格式像往常一样灵活。 该算法理论上应该适用于所有正整数。实际上,由于存储器,时间或数据类型的限制,输入可能被限制为最大值。但是,该代码必须100至少在不到一分钟的时间内适用于输入。 该算法理论上应能0.001精确给出结果。实际上,由于数值计算中的累积误差,输出精度可能会更差。但是,0.001对于指定的测试用例,输出必须准确。 最短的代码胜出。 测试用例 1 -> 1 3 -> 1.635078 6 -> 1.568644 10 -> 1.508498 25 -> 1.458582 50 -> 1.448504 100 …
18 code-golf  math  number 

14
动作相当顺畅
在算术中,n光滑数(其中n是给定的质数)在数学上被定义为不具有大于n的素数的正整数。例如,42是7平滑的,因为它的所有素数都小于或等于7,但是44不是7平滑的,因为它也有11作为素数。 将一个非常平滑的数字定义为没有素数大于其平方根的数字。因此,相当平滑的数字列表可以表述为: (已编辑!) 1是一个非常平滑的数字,因为它完全没有任何主要因素。(请注意,在此问题的原始版本中,错误地从列表中排除了1,因此,如果从输出中排除它,则不会被标记为错误。) 在4(= 2 2)和8之间,相当平滑的数字是2平滑的,这意味着它们以2为唯一素数。 在9(= 3 2)和24之间,相当平滑的数字是3平滑的,并且在素数分解中可以有2s和3s。 在25(= 5 2)和48之间,相当平滑的数字是5平滑的,并且在素数分解中可以有2s,3s和5s。 依此类推,每次到达下一个质数的平方时就升级标准。 相当平滑的数字列表是固定的,并且从以下开始:1、4、8、9、12、16、18、24、25,... 您的挑战是编写代码,以输出所有非常平滑的数字,包括10,000(= 100 2)。列表中的每个数字与下一个数字之间至少必须有一个分隔符(无论哪种分隔符,空格,逗号,换行符等等),但是使用什么字符完全无关紧要。 像往常一样,最低字节数会获胜-显然,仅输出列表不会对您有太大帮助。祝好运!
18 code-golf  math  primes 

6
识别折页
任务 根据形式f(x)= x%a 1 %a 2 %…%a k定义mod折叠,其中a i是正整数,且k≥0。(此处,%是左联想模运算符。) 给定n个整数y 0,…,y n-1的列表,确定是否存在模倍f,以便每个y i = f(i)。 您可以为功能/程序选择并固定任意两个输出 Y和N。如果存在这样的f,则必须始终完全返回/打印Y;如果没有,你必须总是返回/打印准确ñ。(这些可能是true/ false,或1/ 0或false/ true等)。在您的答案中提及这些。 以字节为单位的最短提交获胜。 例 定义f(x)= x%7%3。其值开始: | x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | f(x) …

9
生成Rummy序列
您的任务是获取Rummy序列的输入n和输出元素n,该序列是我制作的(在OEIS上查找不会帮助您)。 定义 Rummy序列的每个元素都是一组真或假值。例如:[true, false]。 生成Rummy序列的成员的步骤非常简单: 从第一个索引开始[](这是元素0)。 将最左边的falsey设置为true。如果没有要更改的错误,则将列表的长度增加1并将新列表的所有成员设置为错误。 重复步骤2直到到达element n。 例 让我们将函数定义为rummy(int n)({}插入是为得到答案所采取的步骤): >>> rummy(5) {[]} {[false]} {[true]} {[false, false]} {[true, false]} [true, true] 规则 有标准漏洞。 必须通过您的语言的数字上限来输入0。 您可以以您认为合适的任何方式输出,只要清楚地知道输出是一组true / falseys。 琐事 我将其称为“ Rummy序列”是因为从索引2开始,它定义了在每一轮Progressive Rummy中需要放置的集合,其中falsey是一本书,而Truth是运行。 测试用例 >>> rummy(0) [] >>> rummy(1) [false] >>> rummy(6) [false, false, false] >>> rummy(20) [true, true, true, …

27
数数,替换,重复!
定义 如下定义CURR序列的第n 个数组。 从单例数组A = [n]开始。 对于A中的每个整数k,用k个自然数替换条目k,从1到k递增。 重复上一步骤n-1次。 例如,如果n = 3,我们从数组[3]开始。 我们替换3用1,2,3,得到[1,2,3] 。 我们现在更换1,2,和3带1 ; 1,2和1,2,3(resp。),产生[ 1,1,2,1,1,2,3 ]。 最后,我们对数组中的所有六个整数执行与上一步相同的替换,得到[ 1,1,1,2,1,1,1,2,1,2,3 ]。这是第三个CURR阵列。 任务 编写一个函数程序,给定严格的正整数n作为输入,该程序将计算第n 个 CURR数组。 输出必须是某种类型的平面列表(以及从函数返回的数组,您语言的数组语法的字符串表示形式,以空格分隔的等)。 这是代码高尔夫球。可能以字节为单位的最短代码获胜! 测试用例 1 -> [1] 2 -> [1, 1, 2] 3 -> [1, 1, 1, 2, 1, 1, 2, 1, 2, 3] 4 -> …

15
g o l f a t 2
有时将笛卡尔坐标转换(x,y)为极坐标确实很费力(r,phi)。虽然你可以计算r = sqrt(x^2+y^2)很容易,你经常计算时的角度需要的情况下有些区别phi,因为arcsin,arccos以及arctan和所有其他三角函数有一个共同域,每个只有跨越半个圆。 在许多语言中,都有用于将直角坐标转换为极坐标的内置atan2函数,或者至少具有给定的(x,y)计算角度的函数phi。 任务 你的任务是写一个程序/功能采用两个(浮点,但不能同时为零)笛卡尔坐标(x,y),并输出对应的极角phi,其中phi必须处于度,弧度或等级(与等级余平均gradians其是1 /整圆的400),以您较方便的为准。 角度是在正方向上测量的,对于,我们有零角度(1,0)。 细节 您不得使用内置插件是计算角度phi给出两个坐标,其中包括atan2,rect2polar,argOfComplexNumber和类似的功能。但是,您可以使用通常的三角函数及其反函数,它们只需一个参数。任何单位符号都是可选的。 半径r必须为非负数,并且phi必须在范围内[-360°, 360°](无论输出270°还是,都无关紧要-90°)。 例子 Input Output (1,1) 45° (0,3) 90° (-1,1) 135° (-5,0) 180° (-2,-2) 225° (0,-1.5) 270° (4,-5) 308.66°
18 code-golf  math  geometry  trigonometry  code-golf  number-theory  fibonacci  code-golf  math  sequence  fibonacci  code-golf  string  code-golf  math  graphical-output  geometry  code-golf  string  code-golf  math  geometry  code-golf  math  bitwise  number  popularity-contest  graphical-output  image-processing  fractal  code-golf  number-theory  code-golf  date  multi-threading  code-golf  math  code-golf  math  number  sequence  code-golf  math  number  sequence  arithmetic  code-golf  decision-problem  logic-gates  code-golf  decision-problem  balanced-string  code-golf  math  arithmetic  combinatorics  code-golf  expression-building  code-golf  physics  code-golf  abstract-algebra  code-golf  number  arithmetic  integer  code-golf  ascii-art  number  code-golf  number-theory  primes  code-golf  arithmetic  grid  code-golf  code-golf  sequence  code-golf  kolmogorov-complexity  compression  code-golf  math  number  arithmetic  array-manipulation  code-golf  primes  hexagonal-grid  complex-numbers  code-golf  number  counting  code-golf  math  number  arithmetic 

5
约旦分解
重要说明:因为此挑战仅适用于平方矩阵,所以每当我使用术语“矩阵”时,都假设我是指平方矩阵。为了简洁起见,我将省略“方形”描述。 背景 通过使用相似的对角矩阵(一个不在主对角线上的元素为0的元素),可以简化许多与矩阵相关的操作,例如计算行列式,求解线性系统或将标量值函数扩展到矩阵。到原始矩阵(意味着,对于输入矩阵A和对角线矩阵D,存在一些可逆矩阵P,使得D = P^(-1) * A * P;另外,D和A共享一些重要性质,如本征值,决定因素,而迹线)。对于具有不同特征值的矩阵(矩阵的特征多项式的根,通过求解det(A-λI) = 0给出λ,其中I是与相同维的恒等式A),对角化很简单:D是一个矩阵,其特征值在主对角线上,并且P是一个由对应于这些特征值的特征向量组成的矩阵(顺序相同)。这个过程称为本征分解。 但是,具有重复特征值的矩阵不能以这种方式对角线化。幸运的是,任何矩阵的约旦范式都可以很容易地计算出来,并且比常规的对角矩阵难得多。它还具有很好的特性,如果特征值是唯一的,则Jordan分解与特征分解相同。 约旦分解解释 对于A特征值均具有1的几何多重性的方阵,约旦分解的过程可描述如下: 令λ = {λ_1, λ_2, ... λ_n}为A具有多重性的特征值列表,其中重复的特征值连续出现。 创建一个对角矩阵,J其元素是的元素λ,顺序相同。 对于每个多重性大于1 1的特征值,将特征值的每个重复项的右边放在a 的主对角线上J,最后一个除外。 所得矩阵J是的约旦范式A(对于给定矩阵,可以有多个约旦范式,具体取决于特征值的顺序)。 一个可行的例子 设A以下矩阵: A具有多重性的特征值是λ = {1, 2, 4, 4}。通过将它们放入对角矩阵,我们得到以下结果: 接下来,将1s 放在每个重复特征值中的一个之外的所有右边。由于4是唯一重复的特征值,因此我们1在前四个值旁边放置一个: 这是Jordan的正常形式A(单个矩阵可能具有几种有效的Jordan正常形式,但是出于解释的目的,我将详细介绍该细节)。 任务 给定方阵A作为输入,输出有效的Jordan范式A。 输入和输出可以采用任何合理的格式(2D数组/列表/任何形式,列表/阵列/任何列或行向量,内置矩阵数据类型等)。 的元素和特征值A将始终是范围内的整数[-200, 200]。 为了简单起见,所有的特征值将具有1的几何多重性(因此上述过程成立)。 A 最多为10x10矩阵,至少为2x2矩阵。 不允许使用计算特征值和/或特征向量或执行特征分解,Jordan分解或任何其他类型的分解/对角化的内建函数。允许矩阵算术,矩阵求逆和其他矩阵内置函数。 测试用例 [[1, 0], [0, 1]] …

12
计算物体的体积
您可以根据一组给定的尺寸确定对象的体积: 球体的体积可以使用一个数字确定,半径(r) 圆柱体的体积可以使用两个数字确定,即半径(r)和高度(h) 可以使用三个数字(长(l),宽(w)和高(h))确定盒子的体积 可以使用四个数字(边长(a, b, c)和高度(h))确定不规则三角形棱锥的体积。 面临的挑战是在以下输入之一的情况下确定对象的体积: 单个数字(r)或(r, 0, 0, 0)=>V = 4/3*pi*r^3 两个数字(r, h)或(r, h, 0, 0)=>V = pi*r^2*h 三个数字(l, w, h)或(l, w, h, 0)=>V = l*w*h 四个数字(a, b, c, h)=> V = (1/3)*A*h,A由Heron公式给出:A = 1/4*sqrt((a+b+c)*(-a+b+c)*(a-b+c)*(a+b-c)) 规则和说明: 输入可以是整数和/或小数 您可以假设所有输入尺寸均为正 如果Pi是硬编码的,则必须精确到:3.14159。 输出必须至少包含6个有效数字,但可以用较少的数字准确表示的数字除外。您可以将输出3/4为0.75,但4/3必须为1.33333(可以输入更多数字) 如何舍入不正确的值是可选的 无效输入的行为未定义 I / O的标准规则。输入可以是列表或单独的参数 这是代码高尔夫,所以最短的解决方案以字节为单位。 测试用例: …

1
沙堆整数
挑战 您将得到一个正整数n作为输入。输出应为基于以下指定规则的金字塔形沙堆: 每个整数都从相同的初始起点“下降”,就像沙子掉落成圆锥形一样。 如果能够,大于比直接在其下方的数字大的数字将落在右侧。 如果可能,小于直接在其下面的数字的数字将落在左侧。 当它碰到沙堆时,等于其正下方数字的数字将保留在原位。 如果数字可以分别向下移动和向左/向右移动,则它们可以左右移动。也就是说,如果根据方向的不同,在左下方和左/右方向已经有一个数字,则当前下降的数字不会移动。 一个数字将继续从沙堆中跌落,直到无法将其移动到下一个位置或撞到地板上为止。 笔记 初始比较检查仅适用于遇到的第一个整数,不适用于每次连续遇到的整数,因为它在沙堆中翻滚。 尾随空格可以,但尾随新行不行。 除需要保留沙堆结构的地方外,没有任何前导空间或新行。 您可以编写完整的程序或功能。 您可能会假设输入将仅包含某些组合[0-9]。 这是代码高尔夫,最短的代码(以字节为单位)将被3月的Ides标记为赢家 例子 1个 1 12345 35 124 54321 13 245 555444333222111 2 2 2 135 1345 13445 111222333444555 4 4 4 135 1235 12235 7313623030872935273465247457435345345350 3 3 3 3 34 355 3644 239475 201277445 020373685575
18 code-golf  math  number 

26
输出变戏法者序列
的杂耍序列被描述如下。从输入a 1开始,下一项由递归关系定义 该序列在达到1时终止,因为所有后续项将为1。 任务 给定一个n大于或等于2 的输入,编写一个程序/函数/生成器/等。输出/返回相应的变戏法者序列。输出可以是任何合理的形式。您不得使用用于计算变戏法者序列的内置程序或任何直接产生结果的内置程序。您可以假设序列以结尾1。 测试用例 Input: output 2: 2, 1 3: 3, 5, 11, 36, 6, 2, 1 4: 4, 2, 1 5: 5, 11, 36, 6, 2, 1 这是代码高尔夫球。以字节为单位的最短代码获胜。

4
一周中压缩的天数
输入星期几列表,则输出列表中最短的排序表示形式。 输入的格式是由一个或多个双字符子串的字符串Su(星期日), Mo(星期一), Tu(等), ,We,Th, Fr和Sa。输入不一定必须以排序的顺序给出。 要将输入转换为输出格式, 从星期天开始按星期几对输入进行排序(例如ThMoSaSuFrTuWe-> SuMoTuWeThFrSa)。 如果不引起歧义,请将缩写词减少到一个字母。例如,之所以SuMoTuWe成为,SMTW是因为第一个S不可能在星期六,因为这样会使输出未排序(与T相同)。但是,ThFrSa应该成为ThFS,因为星期二和星期四都在星期五之前,并将其减小以TFS产生歧义。 如果输出为now MTWTF,则D改为输出(代表“ 工作日 s”)。同样,SS应该成为E一周结束。最后, SMTWTFS应该成为A对所有天。 输入和输出都必须是单个字符串。 由于这是code-golf,因此以字节为单位的最短代码为准。 测试用例: In Out | In Out -----------------------|-------------------- SuTu STu | SuTuWe STW SuTuSa STuS | SuWeTh SWT TuThSa TTS | TuThSu STT Su Su | Sa Sa WeTh WT | FrTh ThF WeTu …

4
一个简单的DNA模拟器
您的代码将永远生成DNA的非常简单的ASCII表示形式。它会以您想要的任何格式将两个数字作为输入:作为列表,作为函数的参数,在stdin等上。 I介于0.0到1.0(含)之间的浮点间隔(以秒为单位) 缩放级别Z,从1到64(含)的整数 您的代码将每秒钟将一行输出到stdout或等价的行,从而I产生一个无限的输出,看起来像这样(缩放级别4): A T-----a G-------c G-----c g t-----A a-------T c-----G T A-----t C-------g ... 具体地,我们的DNA的表示是一对由连字符连接的正弦波,一个由字符a,c,g,和t,其他字符的A,C,G,和T。如果x是我们当前正在打印的行的0索引编号,则小写波中字符的从0开始的位置由给出(sin(πx / Z) + 1) * Z,而大写波中的字符从0开始的位置由给出(-sin(πx / Z) + 1) * Z,两者都四舍五入(但没有下限)整数。更多细节: 如果两个波浪重叠,则需要从大写波浪开始,交替选择哪个波浪在前面。(从小写波开始,我们会得到一个不存在的双螺旋!) 忽略大小写,A总是与T配对,C总是与G配对,就像在真实的DNA中一样。线对本身应随机选择,并在四种可能性上均匀分布。在代码的连续运行中,对的选择是相同还是不同并不重要。只要输出没有明显的模式并且周期至少在十亿之内,随机选择的统计质量就不成问题了(像RANDU这样有缺陷的PRNG 很好。) 您必须没有尾随空格,或者必须在该缩放级别将每一行都填充到波浪的最大位置(在上面的示例中为九个字符)。出于数学原因,缩放级别1可能有一个可选的附加尾随空格。 由于DNA很小,因此您的代码将需要尽可能短。 更多示例: 缩放等级8: T C-----g A-----------t C-------------g G---------------c T-------------a T-----------a T-----a c g-----C t-----------A g-------------C a---------------T ... …

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.