Questions tagged «math»

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

12
“借位”两个数字
您是否知道少数可以从较大的数字借位?这是一个例子。假设我们的两个数字分别为5和14。首先,将它们写成二进制: 5 14 000101 001110 首先,我们从较大的数字中减去最小的on位,然后将其赋予其他数字中的最小off位。所以 This bit turns off | v 000101 001110 ^ | This bit turns on 现在我们有 000111 001100 我们的数字是7和12。第一个数字仍然较小,因此我们继续。 000111 001100 001111 001000 现在我们有15和8,所以我们可以停下来。我们将这组操作称为“借位”两个数字。让我们再举一个例子。20和61。 20 61 010100 111101 010101 111100 010111 111000 111111 100000 63 32 因此,我们最终的结果是32,63,让我们做一个更多。31和12。31已经大于12,因此无事可做!借位31和12不会产生31和12的变化。 挑战 您的挑战是编写一个接受两个数字并对其进行位借位的程序或函数。这两个数字将始终为正整数。您的输入和输出可以采用任何合理的格式。 测试IO: Input: 2, 3 Output: 3, …

17
您应该如何安排椅子?
您会教一类学生,他们对椅子的布置有有趣的偏好。他们对椅子的布置有3个非常具体的要求: 它们大多数都以矩形排列,即使这意味着有些椅子是空的。 空椅子必须尽可能少。 它们必须尽可能“方形”。矩形度取决于矩形的宽度和高度之间的距离,越低越好。例如,矩形4x7的正方形度为3。 更具体地说,布置的“分数”是宽度和高度之间的距离加上将要空的椅子数量。 让我们举个例子。假设您有13个学生。您可以通过以下任何一种方式安排椅子: 1x13 2x7 3x5 4x4 1x13不是很方形。实际上,1和13相距12点,因此我们给此排列12点。它还有0个空椅子,所以我们加0分,使这种安排的得分为12。 2x7当然更好。2和7仅相距5,所以我们给这种安排5分。但是,如果实际上安排了两排,每排有七把椅子,那将占用14把椅子,这意味着一把椅子将是空的。因此,我们加1分,使该安排获得6分。 我们也可以做3x5。3和5相距2,所以+2分。它需要15张椅子,这意味着我们要再增加两把椅子,所以再加上2分,得到4分。 最后一个选择4x4。4和4相距0,因此我们给了+0分。4x4需要16张椅子,所以3张椅子空了,总分3。这是最佳的解决方案。 如果是平手,最佳的解决方案是空椅子少的人。 挑战 您必须编写一个程序或函数,该程序或函数需要一个整数,并为该数量的学生输出最佳的椅子布置。IO可以采用任何合理的格式。这是从1到100的任意数量学生的示例输出: 1: (1, 1) 2: (1, 2) 3: (2, 2) 4: (2, 2) 5: (2, 3) 6: (2, 3) 7: (3, 3) 8: (3, 3) 9: (3, 3) 10: (2, 5) 11: (3, 4) …
20 code-golf  math 

21
男女序列
这个问题可能比所有这些“生成数字序列”任务都困难,因为这需要两个序列一致地工作。 真的很期待答案! 道格拉斯·霍夫施塔特(Douglas Hofstadter)在他的《哥德尔,埃舍尔,巴赫:永恒的金色辫子》一书中,里面有很多数字序列,所有这些序列都以某种方式依赖上一个术语。有关所有序列的信息,请参见Wikipedia页面。 一对真正有趣的序列是雌性和雄性序列,它们的定义如下: 为n > 0。 这是女性序列和男性序列。 您的任务是,在给定整数n作为输入的情况下n,在输出的两行中返回母序列和母序列的列表,其项的数量等于,第一行是母序列,母序列为第二。 输入和输出示例:输入:5 输出:[1, 1, 2, 2, 3] [0, 0, 1, 2, 2] 输入:10 输出:[1, 1, 2, 2, 3, 3, 4, 5, 5, 6] [0, 0, 1, 2, 2, 3, 4, 4, 5, 6] 注意:列表之间的分隔表示换行符。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。另外,还要为您的代码添加解释。 排行榜 显示代码段 var QUESTION_ID=80608,OVERRIDE_USER=49561;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 …

3
将方钉放入方孔
我对《纽约时报》的这张图片的设计很感兴趣,其中每个美国州都由一个正方形的网格表示。我想知道他们是手动放置正方形还是实际上找到了一个最优的正方形放置(在某种定义下)来表示连续状态的位置。 您的代码将只承受一小部分挑战,即以最佳方式放置正方形来表示状态(或其他任意二维形状)。具体地说,它假设我们已经具有所有形状的地理中心或质心一种方便的格式,并且在这样的图中,数据的最佳表示形式是从形状的质心到代表它们的正方形中心的总距离最小,每个中最多一个正方形可能的位置。 您的代码将以任何方便的格式获取从0.0到100.0(含)之间的唯一的浮点X和Y坐标对列表,并将以最佳位置表示数据的网格中输出单位平方的非负整数坐标。 ,保持秩序。如果正方形的多个排列是最佳的,则可以输出任何最佳排列。将给出1至100对坐标。 这是代码高尔夫球,最短的代码获胜。 例子: 输入: [(0.0, 0.0), (1.0, 1.0), (0.0, 1.0), (1.0, 0.0)] 这是个简单的。在我们的网格中,正方形的中心位于0.0、1.0、2.0等处,因此这些形状已经完美地放置在此模式的正方形的中心处: 21 03 因此,您的输出应恰好是这些坐标,但以您选择的格式为整数: [(0, 0), (1, 1), (0, 1), (1, 0)] 输入: [(2.0, 2.1), (2.0, 2.2), (2.1, 2.0), (2.0, 1.9), (1.9, 2.0)] 在这种情况下,所有形状都在(2,2)处接近正方形的中心,但是我们需要将它们推开,因为两个正方形不能位于同一位置。最小化从形状的质心到代表该形状的正方形的中心的距离,可以得到以下图案: 1 402 3 因此,您的输出应为[(2, 2), (2, 3), (3, 2), (2, 1), …

18
找到叉积
两个三维向量→ a和→ b的叉积是唯一向量→ c,使得:a⃗ 一种→\vec ab⃗ b→\vec bc⃗ C→\vec c c⃗ C→\vec c正交于a⃗ 一种→\vec a和b⃗ b→\vec b 的大小c⃗ C→\vec c等于平行四边形的通过形成在区域a⃗ 一种→\vec a和b⃗ b→\vec b 的方向a⃗ 一种→\vec a,b⃗ b→\vec b,和c⃗ C→\vec c,按照这个顺序,遵循右手定则。 叉积有一些等效公式,但是一个公式如下: a⃗ ×b⃗ =det⎡⎣⎢i⃗ a1b1j⃗ a2b2k⃗ a3b3⎤⎦⎥a→×b→=det[i→j→k→a1a2a3b1b2b3]\vec a\times\vec b=\det\begin{bmatrix}\vec i&\vec j&\vec k\\a_1&a_2&a_3\\b_1&b_2&b_3\end{bmatrix} 其中i⃗ i→\vec i,j⃗ j→\vec j和k⃗ k→\vec k是第一维,第二维和第三维的单位矢量。 …

9
Repunits的新颖主要因素
背景 人们在聊天中谈论素分解,我们发现自己在谈论repunits。Repunits是称为repdigits的数字的子集,repdigits仅由重复数字组成,例如222或4444444444444444,但是repunits仅由组成1。 因此,第一耦合repunits是1,11,111等。这些可通过称为[R Ñ,所以ř 1 = 1,- [R 2 = 11,等,和由下式产生R(n) = (10^n - 1)/9,与n > 0。 这些重复单元编号的素数分解遵循OEIS中的序列A102380。例如: R 1 = 1 R 2 = 11 R 3 = 111 = 3 * 37 R 4 = 1111 = 11 * 101 R 5 = 11111 = 41 * 271 …

17
查找所有可能的基本表示形式的总和
这项挑战的目的是编写一个程序,以转换输入字符串(假定该字符串仅包含字母和数字),并尽可能多地使用2到36之间的基数,并找到结果的基数10。 输入字符串将被转换为所有在其数量会根据用于碱基高达36标准字母表来定义的碱基:0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ。例如,输入2T仅在以30为基数的有效值。该程序会将2T从30到36的基数转换为十进制并求和。 您可以假定输入字符串仅包含字母和数字。您的程序可以使用大写或小写;它可以但不需要同时支持两者。 测试用例 输入样例: 2T 可能基准图 Base Value 30 89 31 91 32 93 33 95 34 97 35 99 36 101 输出:665 输入样例: 1012 可能基准的图表: Base Value 3 32 4 70 5 132 6 224 7 352 8 522 9 740 10 1012 11 1344 12 1742 13 …

12
多项式的符号微分
象征性的区别1:去了Coefishin' 任务 编写一个程序,将x的多项式从stdin(1 <deg(p)<128)引入并进行微分。输入多项式将是以下形式的字符串: "a + bx + cx^2 + dx^3 +" ... 其中每个项的系数是整数(-128 <a <128)。每个术语由一个空格,一个+和另一个空格分隔;线性和常数项如上所示(即no x^0或x^1)。项将按照递增的顺序出现,并且那些零系数的幂被省略。所有系数为1或-1的项都会明确显示该系数。 您的输出必须具有完全相同的形式。请注意,输出中的系数可能高达127 * 127 == 16129。 例子 "3 + 1x + 2x^2" ==> "1 + 4x" "1 + 2x + -3x^2 + 17x^17 + -1x^107" ==> "2 + -6x + 289x^16 + -107x^106" "17x …

1
在有限域或整数上分解多项式
在不使用任何内置分解因数/多项式函数的情况下,将多项式完全分解为整数或有限域的不可约式。 输入值 您的程序/函数将收到一些质数(或零)n作为输入。场/环是顺序(即的有限域Z/nZ),或者只是Z如果n是0。如果n不是0或素数,则您的程序可能会失败。多项式将在中F[x]。 您的程序/函数还将接收多项式作为输入。 输入有一些灵活性,请确保指定打算接收输入的方式。例如,可以将多项式作为系数列表输入,或者以大多数人期望的形式(例如:)50x^3 + x^2或其他一些合理的形式输入。或者输入场/环的格式也可以不同。 输出量 您的程序/函数将完全输出因式分解的多项式。您可以扩展多个根(即(x + 1)(x + 1)代替(x + 1)^2)。您可以删除二进制运算符之间的空格。您可以将并置替换为*。您可以在奇怪的地方插入空格。您可以将因子重新排序为所需的任何顺序。这个x词可能只是(x)。x可以写成x^1; 然而,常数项可能不会有x^0。+允许有多余的迹象。您可能没有一个0前置词,必须将其排除在外。每个因素的前置项必须为正,负号必须在外部。 测试用例,您的程序应该能够在合理的时间(例如,<= 2小时)内为每一个产生输出: 输入: 2, x^3 + x^2 + x + 1 输出: (x + 1)^3 输入: 0, x^3 + x^2 + x + 1 输出: (x + 1)(x^2 + 1) 输入: 0, 6x^4 – …

21
使用集合论的字符串长度
摘自Wikipedia 对自然数的集合理论定义 自然数的集合N定义为包含0且在由S(n)= n∪{n}定义的后继函数S下闭合的最小集合。 用这种方式定义的前几个数字是0 = {},1 = {0} = {{}},2 = {0,1} = {{},{{}}},3 = {0,1,2 } = {{},{{}},{{},{{}}}}。 使用自然数的此定义计算字符串的长度。 输入 任意长度的a-zA-Z中的字符串 以设置符号输出字符串的长度,不带分隔符 例子 输入 空字符串 输出 {} 输入 一个 输出 {{}} 输入 aaaa 输出 {{} {{}} {{} {{}}} {{} {{}} {{} {{}}}}} 为了提高可读性,输出带有分隔符的“ aaaa”是 { {} {{}} {{} …

17
让三角学开始吧!
介绍: 所述正弦的x由下式给出: sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - x^11/11! // and more follows... 的余弦的x由下式给出: cos(x) = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - x^10/10! // and more follows... 任务: 给定的值x和n,写程序(无功能等)来输出的值sin(x)和cos(x)正确高达n上述公式的条件。假设x以弧度为单位。 输入: x n 甲十进制数x(具有高达3个小数位)和一个整数n。输入必须在标准输入或提示对话框上(如果您的语言不支持标准输入) 输出: [sin(x)] [cos(x)] 两者的价值sin(x)和cos(x)应四舍五入至小数点后6位。如果sin(x)是0.5588558855(10个十进制数字),则应四舍五入为0.558856(6个十进制数字)。舍入必须最接近此Wiki文章表的第五列“舍入到最接近”中所述。 限制条件: 1 <= …
20 code-golf  math 

9
寻找皮萨诺时期
的斐波那契序列是众所周知的序列,其中每个条目的前两个与前两项的总和是1。如果我们把每学期的模一个恒定的顺序将成为周期性的。例如,如果我们决定计算序列mod 7,我们将得到以下结果: 1 1 2 3 5 1 6 0 6 6 5 4 2 6 1 0 1 1 ... 它的周期为16。定义了一个相关序列,称为Pisano序列,使得该序列是a(n)模数为n时斐波纳契序列的周期。 任务 您应该编写一个程序或函数,给定的程序或函数n将计算并输出Fibonacci序列mod的周期n。那是Pisano序列中的第n项。 您只能在范围内支持整数 0 < n < 2^30 这是一场代码高尔夫竞赛,因此您应努力使按字节计分的源代码的大小最小化。 测试用例 1 -> 1 2 -> 3 3 -> 8 4 -> 6 5 -> 20 6 -> 24 …

30
加性持久性
传递所有可能性的最短代码将获胜。 在数学中,数字的持久性表示必须对某位数字进行某种操作,直到达到某种特定的固定条件。您可以通过将整数的数字相加并重复来确定正整数的加性余辉。您将不断添加总和的数字,直到找到一个数字为止。达到该单个数字所花费的重复次数是该数字的累加持久性。 使用84523的示例: 84523 8 + 4 + 5 + 2 + 3 = 22 2 + 2 = 4 It took two repetitions to find the single digit number. So the additive persistence of 84523 is 2. 您将得到一个正整数序列,您必须计算它们的加法持久性。每行将包含一个不同的整数要处理。输入可以采用任何标准的I / O方法。 对于每个整数,必须输出整数,后跟一个空格,再加上其累加持久性。每个处理的整数必须在自己的行上。 测试用例 输入输出 99999999999 3 10 1 8 0 …

27
为*写翻译
任务很简单。为*语言编写口译员。 这是Wiki的更大链接。 只有三个有效的*程序: * 打印“ Hello World” * 打印0到2,147,483,647之间的随机数 *+* 永远运行。 根据此问题的规范,第三种情况必须是无限循环 输入: 可以通过我们的标准I / O规则通过任何可接受的输入方法进行输入 它将永远是以上程序之一 输出: 第一种情况应打印准确Hello World,带有或不带有尾行。 对于第二种情况,如果您的语言的整数最大值小于2,147,483,647,请使用您的语言的整数最大值 根据我们的标准I / O规则,第一种情况和第二种情况可以打印到任何可接受的输出。 第三种情况不应给出任何输出。 得分: 因为这是代码高尔夫球,所以最短的答案(以字节为单位)获胜。
20 code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

12
永久的Codegolf
挑战是为矩阵的永久性编写代码高尔夫球。 n-by- nMatrix A=(ai,j)的永久变量定义为 在此S_n表示的所有排列的集合[1, n]。 作为一个例子(来自维基): 您的代码可以随意输入,并以任何合理的格式输出,但是请在答案中包括一个完整的示例,其中包括有关如何向代码提供输入的明确说明。为了使挑战更加有趣,矩阵可以包含复数。 输入矩阵始终为正方形,最多为6 x6。 您还需要能够处理具有永久性1的空矩阵。不需要处理空矩阵(这会引起过多的结果)。问题)。 例子 输入: [[ 0.36697048+0.02459455j, 0.81148991+0.75269667j, 0.62568185+0.95950937j], [ 0.67985923+0.11419187j, 0.50131790+0.13067928j, 0.10330161+0.83532727j], [ 0.71085747+0.86199765j, 0.68902048+0.50886302j, 0.52729463+0.5974208j ]] 输出: -1.7421952844303492+2.2476833142265793j 输入: [[ 0.83702504+0.05801749j, 0.03912260+0.25027115j, 0.95507961+0.59109069j], [ 0.07330546+0.8569899j , 0.47845015+0.45077079j, 0.80317410+0.5820795j ], [ 0.38306447+0.76444045j, 0.54067092+0.90206306j, 0.40001631+0.43832931j]] 输出: -1.972117936608412+1.6081325306004794j 输入: [[ 0.61164611+0.42958732j, 0.69306292+0.94856925j, 0.43860930+0.04104116j, …
20 code-golf  math  matrix 

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.