Questions tagged «math»

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

29
旋转总和
以包含正整数的方阵为输入,并计算该矩阵的“旋转总和”。 轮换金额: 取原始矩阵与旋转90、180和270度的同一矩阵的总和。 假设矩阵为: 2 5 8 3 12 8 6 6 10 那么旋转后的总和将是: 2 5 8 8 8 10 10 6 6 6 3 2 3 12 8 + 5 12 6 + 8 12 3 + 6 12 5 = 6 6 10 2 3 6 8 5 …

30
非零数字产品挑战
最初是乘法数字根 挑战 基本上按照标题说 方法 通过我们的一种标准输入法,给定正整数 1 <= N <= 100000000,将每个数字相乘,而忽略零。 例如:拿一个数字,说361218402: 3* 6=18 18* 1=18 18* 2=36 36* 1=36 36* 8=288 288* 4=1152 1152* 1 (忽略零或将它们变成1) =1152 1152* 2=2304 的输出361218402是2304 测试用例 1 => 1 其他数字> 0 =>本身 10 => 1 20 => 2 100 => 1 999 => 729 21333 …

30
第N个差异
在数学中,一种计算给定关系的类型(线性,二次等)的方法是计算差异。为此,您要获取一个y值列表,其对应的x值之间的差距相同,然后从其上的数字中减去每个数字,从而创建一个比上一个列表短一的数字列表。如果结果列表完全由相同的数字组成,则该关系的差为1(线性)。如果它们不相同,则在新列表上重复该过程。如果它们现在相同,则该关系具有2的差(是二次关系)。如果它们不相同,则只需继续此过程,直到它们相同为止。例如,如果您具有用于递增x值的y值列表[1,6,15,28,45,66]: First Differences: 1 6 1-6 =-5 15 6-15 =-9 28 15-28=-13 45 28-45=-17 66 45-66=-21 Second differences: -5 -9 -5+9 =4 -13 -9+13 =4 -17 -13+17=4 -21 -17+21=4 As these results are identical, this relation has a difference of 2 你的任务: 编写一个程序或函数,当给定整数数组作为输入时,如上所述,该程序或函数返回该数组描述的关系的差。 输入: 整数数组,长度可以大于1。 输出: 一个整数,表示输入所描述的关系的差。 测试用例: Input => …

15
МногочленыЧебышёва(Chebyshev多项式)
Chebyshev多项式是一个正交多项式的族,它们在数学中的各个位置弹出,它们具有许多非常有趣的属性。它们的一个特征是它们是满足的唯一多项式。Tn(cos(x)) = cos(n*x) 挑战 给定一个非负整数n,您应该输出n-th Chebyshev多项式。。Tn(x) 定义 该n个切比雪夫多项式由以下三个递推公式给出: T0(x) = 1 T1(x) = x Tn+1(x) = 2*x*Tn(x) - Tn-1(x) 细节 如果您的语言具有本机多项式类型,则可以将其用作输出,否则应按升序或降序输出系数列表,或将其作为代表多项式的字符串输出。 例子 T0(x) = 1 T1(x) = x T2(x) = 2x^2 - 1 T3(x) = 4x^3 - 3 x T4(x) = 8x^4 - 8x^2 + 1 T5(x) = 16x^5 - …

9
GCD / LCM多色!
您面临的挑战是制作一个程序或函数,以一种语言输出其输入的GCD并以另一种语言输出其输入的LCM。允许但不鼓励使用GCD或LCM(我在看着您,Mathematica)的内建函数。将有2个输入,这些输入将始终为正整数,且不得大于1000。 测试用例 每行是一个测试用例,格式为x y => GCD(x,y) LCM(x,y): 1 1 => 1 1 1 2 => 1 2 4 1 => 1 4 3 4 => 1 12 7 5 => 1 35 18 15 => 3 90 23 23 => 23 23 999 1000 => 1 999000 1000 999 => …

30
减号,加号,时间,幂?
这是我不久前在我们的聊天室The Ninteenth Byte中发布的CMC(聊天迷你挑战)。 挑战 给定一个正整数x,取决于的最后2位x,请执行以下操作: x & 3 == 0: 0 x & 3 == 1: x + x x & 3 == 2: x * x x & 3 == 3: x ^ x (exponentiation) 输入输出 Single Integer -> Single Integer 输出中允许尾随换行符。不允许其他空格。 测试用例 input output 1 2 2 4 …
26 code-golf  math 

21
仅包含这些数字的最小n位素数
您将需要生成带有n数字的最小素数,并且它仅包含list中指定的数字k。 例子: 输入: 4 1 2 为此,您必须生成带有4数字的最小素数,并且该素数必须仅包含数字1和2。 输出: 2111 输入: 10 0 4 7 输出: 4000000007 输入: 6 5 5 5 5 5 5 5 5 5 5 1 5 5 5 5 5 5 5 5 5 5 输出: 115151 您可以保证输入将始终采用您指定的格式,并且如果输入无效(例如,输入为一位n,而没有k),则可以执行任何操作。 如果不存在此类输入解决方案,则允许您的程序执行以下任一操作: 打印 banana 抛出错误 永远跑 还要别的吗 由于这是代码高尔夫,请尝试以最短的代码为目标。 输入可以是您指定的任何格式。例如,如果您希望您的输入与以下任何一种一样,那就很好。 …

10
符号矩阵乘法
有很多不同的方法来解释矩阵乘法。我会坚持一个数字,因为我相信这里的大多数人都熟悉它(这个数字非常具有描述性)。如果您需要更多详细信息,建议您访问Wikipedia文章或WolframMathWorld上的说明。 简单说明: 假设您有两个矩阵A和B,其中A是3×2,而B是2×3。如果对矩阵AB或BA进行矩阵乘法,将得到以下结果: 挑战: 用您的语言实现符号矩阵乘法。您将采用两个矩阵作为输入,其中矩阵中的每个元素都由一个非空白ASCII字符(代码点33-126)表示。您必须输出这些矩阵的乘积。 有关输出的规则: 两个条目的乘积之间不应有任何符号。这ab不a*b,a·b,times(a,b)或者类似的东西。这aa,不是a^2。 项的总和之间应有一个空格(ASCII码点32)。这a b不a+b,plus(a,b)或者类似的东西。 这两个规则的基本原理是:矩阵中所有非空白字符都可以用作符号,因此将它们用作数学符号会很麻烦。所以,你可以正常写成a*b+c*d会ab cd。 您可以选择条款的顺序。ab cd,dc ab并cd ba在数学上来说是相同的,所以你可以在这里选择的顺序了。只要在数学上正确,顺序就不必一致。 有关矩阵格式的规则: 矩阵可以以任何您喜欢的格式输入,除了在行之间没有定界符的单个字符串(这是因为输出将被完全弄乱)。两个矩阵必须以相同的格式输入。以下所有示例都是输入和输出矩阵的有效方法。 "ab;cd" <- This will look awful, but it's still accepted. "a,b\nc,d" [[a,b],[c,d]] [a, b] [c, d] 我知道这允许许多看起来很杂乱的格式,但是挑战在于要乘以矩阵而不是格式化输出。 一般规则: 您可以假设输入有效。在给定尺寸下,矩阵乘法始终是可能的。 只有两个矩阵。 您可以假设矩阵是非空的 接受内置函数(但由于格式要求,可能有点麻烦)。 当然,如果需要,您当然可以在输入中使用转义符(\'而不是')。 任何标准的输入和输出方法都可以。 测试用例: 所示的两个输入矩阵之间有一条空线。输出显示在之后Output:。当有两个输出矩阵时,这只是显示其他可以接受的输出。 测试用例#1 Inputs: [a] [b] Output: [ab] [ba] …

9
尽快计算永久物
面临的挑战是编写最快的代码来计算矩阵的永久性。 n-by- nMatrix A=(ai,j)的永久变量定义为 在此S_n表示的所有排列的集合[1, n]。 作为一个例子(来自维基): 在这个问题中,矩阵都是正方形的,只有值-1和1在其中。 例子 输入: [[ 1 -1 -1 1] [-1 -1 -1 1] [-1 1 -1 1] [ 1 -1 -1 1]] 常驻: -4 输入: [[-1 -1 -1 -1] [-1 1 -1 -1] [ 1 -1 -1 -1] [ 1 -1 1 -1]] 常驻: …

1
找出Android锁定模式
假设您看到您的朋友在他们的Android手机中输入了他或她的密码。您不记得他们是如何制作图案的,但是您仍然记得图案的外观。作为您关心的朋友,您想知道他们的密码有多安全。您的工作是计算形成特定图案的所有方式。 Android模式如何运作 模式是在3x3的节点网格上绘制的。在一种模式中,无需访问屏幕即可访问一系列节点。他们访问的每个节点都通过一条边连接到前一个节点。要记住两个规则。 您最多只能访问一个节点 边缘可能无法通过未访问的节点 请注意,尽管通常很难执行,因此在实际的android锁组合中并不常见,但可以像Knight一样移动。即,可以从一侧移动到不相邻的拐角处或以另一种方式移动。这是采用此举的两种模式示例: 这是正在执行的动画Gif。 解决模式 典型的模式可能如下所示: 对于这种简单的模式,有两种方法可以绘制两种模式。您可以从两个松散的一端开始,然后穿过突出显示的节点到达另一个节点。尽管对于许多模式而言都是如此,但对于人类通常采用的模式而言,并非对所有模式都如此。 考虑以下模式: 有两种立即可识别的解决方案。从左上方开始的一个: 还有一个从底部中心开始: 但是,因为一旦选择了一条线,就允许它通过一个点,因此从顶部中间开始有一个附加的花样: 这个特定的模式有3个解决方案,但是模式可以有1到4个解决方案之间的任何位置[需要引用]。 以下是每个示例的一些示例: 1。 2。 3。 4。 输入输出 节点可以表示为零到九之间的整数,它们的等效字符串或a到i(或A到I)的字符。每个节点必须具有这些集合之一中的唯一表示。 解决方案将由包含节点表示形式的有序容器表示。节点的顺序必须与传递顺序相同。 模式将由节点对的无序容器表示。每对代表一条开始连接该对中两个点的边。模式表示不是唯一的。 您将通过标准输入方法将模式表示作为输入,并通过标准输出方法输出创建相同模式的所有可能解决方案。 您可以假设每个输入将至少具有一个解决方案,并将连接至少4个节点。 如果您愿意或被语言选择所迫,则可以选择使用有序容器代替无序容器。 测试用例 节点按以下模式排列: 0 1 2 3 4 5 6 7 8 让我们{...}成为一个无序的容器,[...]成为一个有序的容器,然后(...)成为一对。 以下输入和输出应匹配 {(1,4),(3,5),(5,8)} -> {[1,4,3,5,8]} {(1,4),(3,4),(5,4),(8,5)} -> {[1,4,3,5,8]} {(0,4),(4,5),(5,8),(7,8)} -> {[0,4,5,8,7],[7,8,5,4,0]} {(0,2),(2,4),(4,7)} …

21
镜子中的镜子
二维编程语言通常具有镜像命令,例如/和,\以重定向网格上的指令指针: >>>>\ v v <<<</ 在此挑战中,您将获得一个传入方向和一个镜像,并且需要确定传出方向。 规则 传入方向将被指定为字符之一,NESW而镜像将被指定为/或\。您可以按任何顺序收到这些。您必须使用大写字母。 您可以采用任何方便的格式输入,包括两个字符的字符串,在字符之间使用一些分隔符的字符串,列表中的一对字符,甚至一对单例字符串。如果确实使用带分隔符的字符串,则分隔符不能使用任何字符NWSE\/。 输出应为一个字符NESW或单个字符的字符串。 您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 您只需要处理8种可能的输入,因此没有理由不对所有代码进行测试: N / --> W N \ --> E E / --> S E \ --> N S / --> E S \ --> W W / --> N W \ --> S

22
四分位数均值
任务 给定(以任何方式)排序的浮点数据集,返回(以任何方式并在正确值的1‰之内)四分位数均值。 一种可能的算法 丢弃数据点的最低和最高的四分之一。 计算剩余数据点的平均值(总和除以计数)。 注意:如果数据集大小不能一分为四,则必须权衡子集共享的数据点。请参阅下面的示例评估2。 评估示例1 给定{1,3,4,5,6,6,7,7,8,8,9,38} 数据计数是12,所以我们除去最低和最高3数据点:{ 1,3,4, 5,6,6,7,7,8,8,9,38 } 其余6个数据点的平均值:(5 + 6 + 6 + 7 + 7 + 8)/ 6 = 6.5 评估示例2 给定{1、3、5、7、9、11、13、15、17} 计数为9,因此每个季度都有2¼个数据点:{ 1,2,(0.25×5),(0.75×5),7,9,11 ,(0.75×13),(0.25×13),15,17 } 其余4.5个数据点的平均值:(0.75×5 + 7 + 9 + 11 + 0.75×13)/ 4.5 = 9

29
子串总和集
介绍 让我们来观察此阵:[3, 2, 4, 1, 1, 5, 1, 2]。 每个元素显示必须加总的子字符串的长度。让我们看一下上述数组的第一个元素: [3, 2, 4, 1, 1, 5, 1, 2] ^ 第一个索引处的元素是3,因此我们现在取一个长度为3的子字符串,其索引与起始位置相同: [3, 2, 4] 求和时,结果为9,因此子字符串总和集合的第一个元素为9。 我们对数组中的所有元素执行此操作: 3 -> [3, 2, 4] 2 -> [2, 4] 4 -> [4, 1, 1, 5] 1 -> [1] 1 -> [1] 5 -> [5, 1, …

3
残数系统
就大量挑战而言,我认为这可能很有趣。 在此挑战中,我们将使用残数系统(RNS)对大整数执行加法,减法和乘法。 什么是RNS RNS是人们开发用于识别整数的多种方法之一。在该系统中,数字由一系列残差表示(它们是模运算后的结果(即整数除法后的余数))。在此系统中,每个整数都有许多表示形式。为了使事情简单,我们将限制事情,以便每个整数都唯一表示。我认为用一个具体的例子来描述正在发生的事情比较容易。 让我们看一下前三个质数:2、3、5。在RNS系统中,我们可以使用这三个数来唯一表示任何小于2 * 3 * 5 = 30的残数。采取21: 21小于30,因此我们可以使用将2、3和5修改后的结果来表示它(即,整数除以2、3和5之后的余数) 我们将使用以下整数序列来标识21: 21〜{21 mod 2,21 mod 3,21 mod 5} = {1,0,1} 因此,在我们的RNS系统中,我们将使用{1,0,1}而不是“ 21”。 通常给定整数n,我们将n表示为{ n mod 2,...,n mod p_k },其中p_k是最小素数,因此n小于等于或等于p_k的所有素数的乘积。 另一个例子,假设我们有3412。在这里我们需要使用2,3,5,7,11,13,因为2*3*5*7*11*13=30030而2*3*5*7*11=2310这太小了。 3412〜{3412 mod 2,3412 mod 3,3412,mod 5,...,3412 mod 13} = {0,1,2,3,2,6} 您会注意到,使用此系统,我们可以相对轻松地表示非常大的数字。使用{1,2,3,4,5,6,7,8,...}残基,我们可以表示最多{2,6,30,210,2310,30030,510510,9699690 ...}分别。(这是系列) 我们的任务 我们将使用这些残基对大数进行+,-和*。我将在下面描述这些过程。现在,这里是输入和输出规格。 输入项 您将通过stdin或function参数获得两个(可能非常大)的数字。它们将以基数为10的字符串给出。 为了进一步概述问题,我们将第一个输入n称为第二个输入m。假设n> m> …

30
将数字相加,将数字取反
给定一个数字> 0,输出所有位(1 .. n)串联并取反的和,然后将它们加起来。例如,当n = 6时: 数字1到6串联在一起: 123456 反转: 654321 将它们加在一起将得到:777777。另一个示例是n = 11: 1 2 3 4 5 6 7 8 9 10 11 > 1234567891011 和 11 10 9 8 7 6 5 4 3 2 1 > 1110987654321 将它们加在一起将得到2345555545332。这也称为A078262。 最短的代码胜出!

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.