Questions tagged «arithmetic»

与基本算术有关的挑战。

15
被1000003整除?容易,只需将最后一位乘以300001然后加!
给定一个P大于的质数10,您的程序或函数必须弄清楚其除数规则x,定义为具有最小绝对值的整数,当将其与质数的最后一位相乘并加到其余的原始数时,该整数将产生原始质数的倍数主要。 例 给定输入31,最后一个数字为1,其余数字为3。因此,您的程序必须找到x具有最小绝对值的整数,该整数应1*x + 3是的倍数31。在这种情况下,x=-3可以正常工作,因此程序或函数将返回-3。 给定输入1000003,最后一个数字为3,其余数字为100000。这样您的程序就会找到,x=300001因为3*300001+100000 = 1000003它是的倍数1000003。 数学背景 的值x可以用作除数检验。如果一个数字可N被整除P,则将x的最后一位数字N与的余数相加N将得到Pif和only N的可被P第一个整数整除的倍数。 因为P=11,我们得到x=-1,它等于以下公知的除数规则11:一个数字可通过11交替改变其数字的位数来除以11。 规则 输出可以采用任何清楚地编码输出的符号和值的形式。 输入素数将在10到2 ^ 30之间。 如果输入不是素数或不在范围内,则无需处理。 如果x和-x均为有效输出,则不需要处理(不应发生)。 允许使用蛮力,但希望有更多创造性的解决方案。 这是代码高尔夫球,因此每种语言中最短的代码胜出!不要让打高尔夫球的语言的答案妨碍您发布其他语言的信息。 测试用例 Input Output 11 -1 13 4 17 -5 19 2 23 7 29 3 31 -3 37 -11 41 -4 43 13 47 -14 53 16 59 6 …

11
2D分区累计总和
挑战 给定的矩阵中号与[R行和C ^列和两个布尔列表V长度的ř和ħ长度的Ç,计算所述划分累积的垂直和水平的和。 规则 r和c大于或等于1 H和V以真实值开头 M中的值在您语言的合理数值范围内。 分区和求和从左上角开始。 穿过 给定M: ┌──────────────┐ │ 1 2 3 4 5│ │ 6 7 8 9 10│ │11 12 13 14 15│ │16 17 18 19 20│ └──────────────┘ 高:1 0 1 0 0 V:1 1 0 1 将M分为几列,以H的每个真实值开始一个新的组 ┌─────┬────────┐ │ 1 2│ 3 4 …

10
旋转计算器
介绍: 让我们看一下Windows中的标准计算器: 对于这一挑战,我们将仅查看以下按钮,而忽略其他所有内容: 7 8 9 / 4 5 6 * 1 2 3 - 0 0 . + 挑战: 输入: 您将收到两个输入: 一种是表示以90度为增量的旋转 另一个是代表旋转计算器上按下的按钮的坐标列表。 基于第一个输入,我们将上述布局以90度为增量顺时针旋转。因此,如果输入为0 degrees,则保持原样;但是如果输入为270 degrees,则它将顺时针旋转3次(或逆时针旋转1次)。这是四个可能的布局: Default / 0 degrees: 7 8 9 / 4 5 6 * 1 2 3 - 0 0 . + 90 degrees clockwise: …

12
计算N位整数乘法溢出
给定一个正整数N,输出整数对的数量,0 <= a <= b < 2**N使a*b >= 2**N。 规则 您可以假定该N值小于或等于您语言中整数的最大位宽(例如,对于C,N不超过32或64,具体取决于计算机的体系结构)。如果您的语言能够处理任意宽度的整数,则没有上限N。 测试用例 1 0 2 3 3 19 4 96 5 437 6 1876 7 7804 8 31904 9 129170 10 520135 11 2088143 12 8369175 13 33512744 14 134128704 15 536681553 16 2147082274

30
将整数x提高到x的幂,无需内置幂运算
任务-标题几乎总结了一下:将一个整数x乘幂x,其中0<x。 限制条件: 使用幂,exp(),ln(),和任何其他权力相关的语言内置插件,比如pow(),x^x,x**x是被禁止的。 您可以假定给定的整数符合您选择的编程语言的限制。 测试用例: Input | Output --------------- 2 | 4 3 | 27 5 | 3125 6 | 46656 10 | 10000000000 这是代码高尔夫球,因此以字节为单位的最短程序获胜。

10
果酱不要那样添加
背景 果冻的算术原子自动矢量化。实际上,只要x和y y是数字或数字的参差不齐的数组。Jelly的源代码使用通用矢量化程序实现了此行为,但是对于这一挑战,我们将仅考虑将整数和嵌套的整数数组相加。 定义 限定的深度X为0,如果X是一个整数,如1,如果它是整数(可能是空的)平面阵列,并且作为n + 1个,如果它包含深度的至少一种元素Ñ和无深度的元素K> ñ。 这样,1的深度为0,[]和[1]和[1,1]的深度为1,[[],[]]和[[1],[1]]以及[[1]]和[1 ,[]]的深度为2,[1,[1,[1]]]的深度为 3,依此类推。 操作X + Y的定义如下。 如果x和y的深度为0,则返回它们的和。 如果x和y具有相等但正的深度,则将+递归应用于x的所有项和y的对应项。 如果x和y的长度不同,则将较长数组的尾部附加到和数组。 返回结果。 如果x的深度严格小于y的深度,则对x和y的所有项递归应用+,并返回结果。 如果y的深度严格小于x的深度,则相反。 例如,考虑操作[1,[2,3],[4]] + [[[10,20],[30],40,50],60]。 左参数的深度为2,而右参数的深度为3,因此我们计算[1,[2,3],[4]] + [[10,20],[30],40,50 ]和[1,[2,3],[4]] + 60。 [1,[2,3],[4]]和[[10,20],[30],40,50]都具有深度2,因此我们计算出1 + [10,20],[2,3] + [30]和[4] + 40。 1 + [10,20] = [1 + 10,1 + 20] = [11,21] [2,3] + [30] …

15
找到第n个完美的力量!
一个完美的力量是形式a**b,地点a>0和地点的数量b>1。 例如,125是完美的功效,因为它可以表示为5**3。 目标 n给定正整数,您的任务是编写找到第- 个完美幂的程序/函数n。 眼镜 第一个完美的力量是1(是1**2)。 以任何合理的格式输入/输出。 允许内置。 更多信息 OEIS A001597 计分 这是代码高尔夫球。以字节为单位的最短解决方案获胜。 测试用例 input output 1 1 2 4 3 8 4 9 5 16 6 25 7 27 8 32 9 36 10 49

20
分解一个数字!
您的任务是使用以下格式分解数字。 这与基本转换类似,不同之处在于digits,您列出了values,而不是在基本列表中列出,这样列表就加到了输入上。 如果给定的基为n,则列表中的每个数字都必须采用的形式k*(n**m),其中0<=k<n和m在整个列表中都是唯一的。 眼镜 任何合理的输入/输出格式。您的程序/功能需要2个输入并输出一个列表。 输出列表可以是任何顺序。 0 可以排除或包含。 0允许领导。 允许内置。 测试用例 number base converted list input1 input2 output 123456 10 [100000,20000,3000,400,50,6] or [6,50,400,3000,20000,100000] 11 2 [8,2,1] or [0,0,0,0,8,0,2,1] 727 20 [400,320,7] 101 10 [100,1] or [100,0,1] 计分 这是代码高尔夫球。以字节为单位的最短解决方案获胜。
16 code-golf  number  sequence  number-theory  base-conversion  code-golf  bitwise  hashing  code-golf  string  ascii-art  whitespace  code-golf  math  code-golf  code-golf  image-processing  counting  code-golf  math  arithmetic  checksum  code-golf  code-golf  math  arithmetic  number-theory  code-golf  array-manipulation  random  code-golf  string  code-golf  math  ascii-art  base-conversion  code-golf  graphical-output  geometry  3d  code-golf  math  linear-algebra  matrix  code-golf  math  number  sequence  code-golf  array-manipulation  code-golf  math  matrix  linear-algebra  code-golf  number  sequence  counting  code-golf  string  code-golf  string  restricted-source  quine  sorting  code-golf  string  geometry  code-golf  string  code-golf  networking  code-golf  base-conversion  code-golf  math  matrix  code-golf  arithmetic  linear-algebra  matrix  code-golf  number  arithmetic  grid  code-golf  number  source-layout  code-golf  string  bitwise  checksum  code-golf  array-manipulation  code-golf  string  probability-theory  code-golf  tips  code-golf  sequence  code-golf  string  math  sequence  calculus  code-golf  string  palindrome  bioinformatics  code-golf  math  combinatorics  counting  permutations  code-golf  parsing  logic-gates  code-golf  arithmetic  number-theory  combinatorics  code-golf  math  sequence  polynomials  integer  code-golf  string  ascii-art  chess  code-golf  string  code-golf  number  code-golf  string  ascii-art  parsing  code-golf  code-golf  number  natural-language  conversion  code-golf  arithmetic  code-golf  string  code-golf  ascii-art  decision-problem 

15
最小标量积
最小标量积 此代码高尔夫球问题的灵感来自Google的代码堵塞竞赛。问题的前提是,在输入两个长度不同的向量的情况下,找到最小可能的标量。可以使用以下公式找到标量: x1 * y1 + x2 * y2 + ... + xn * yn 然而,问题在于,取决于输入情况下数字的顺序(如下所示),可以找到标量的多个值。您的目标是通过将输入用例编号插入方程式并求解来确定最小可能的标量整数解。您只能在输入中使用每个数字一次,并且必须使用所有数字。 请允许我提供一个带有以下向量的示例。 输入值 3 1 3 -5 -2 4 1 输出量 -25 该行上的第一个整数表示每个向量中的数字n。在这种情况下,每个向量有三个数字。 数字n可能会随每个测试用例而变化,但是总会有两个向量。 在示例输入中,最小标量积为-25。 (-5 * 4) + (1 * 1) + (3 * -2) = 25 规则 您只能在两个向量中使用每个整数一次。 您必须在向量中使用所有整数。 您的输出必须仅包含最终产品 我将以最少的语言选择使用最少语言的解决方案,该解决方案应使用任何语言,都遵循上面列出的所有规范! 提示:您无需强求这个问题,除非它会使您的代码更短。找到最小跨度标量有一种特定的方法:)。

3
任意精度整数部
我们将实现任意大整数的除法。 这是代码高尔夫球。 任务是编写实现任意精度整数和除法的程序或函数。 请注意,不允许使用许多可能会很容易做到的事情,请确保通读规范。 输入值 您将获得两件事作为输入: 一串以10为基数的数字,将其称为n。 另一个以10为基数的字符串,称为 m 假设这n>m>0意味着您将永远不会被零除。 输出量 您会输出两个数字,Q和R其中M * Q + R =正和0 <= R <米 技术指标 您的提交应适用于任意大整数(受可用内存限制)。 您可能不使用外部库。如果需要用于I / O的外部库,则可以将其视为内置库。(查看iostream之类的内容)。 如果您的语言有一个内置的功能可以解决这个问题,则您可能无法使用它。这包括(但不限于)可以处理任意精度整数的内置类型。 如果某种语言由于某种原因默认情况下使用任意精度整数,则此功能不能用于表示通常无法以64位存储的整数。 输入和输出必须以10为底。不管如何将数字存储在内存中或如何对它们进行算术运算,但I / O将以10为底。 您有15秒的时间来输出结果。这是为了禁止迭代减法。 这里的目标是实际实现任意精度的整数。如果您出于某种原因能够遵守挑战规范,并且在没有实施挑战规范的情况下成功做到这一点,那么我想对您有好处,听起来很有效。 测试用例 在这种情况下,输入为39!还有30个! 输入值 n = 20397882081197443358640281739902897356800000000 m = 265252859812191058636308480000000 输出量 Q = 76899763100160 R = 0 n是最多50个阶乘的和的总和,再加上1。m最大是20的级联数。 输入 …

5
加和乘以困惑的数字
的分割复数,也被称为“困扰数字”类似于复数。i^2 = -1但是,我们有代替j^2 = 1; j != +/-1。每个数字采用的形式z = x + j*y。 为了限制这一挑战的复杂性,我将使用该符号-来表示否定,因为不会有任何减法。 以下是一些欣赏乐趣的示例: 6 * 9 = 54 // real numbers still act normally 5 + -7 = -2 j*1 + j*1 = j*2 // two `j`s added together make a j*2 7 * j*1 = j*7 // multiplication …

2
表达数字-现代的“ des Chiffres et des Lettres”
快递号码 早在60年代,法国人就发明了电视游戏节目“ Des Chiffres et des Lettres”(数字和字母)。节目的“数字”部分的目标是,使用一些半随机选择的数字,尽可能接近某个3位目标数字。参赛者可以使用以下运算符: 串联(1和2为12) 加法(1 + 2是3) 减法(5-3 = 2) 除(8/2 = 4); 仅当结果为自然数时才允许除法 乘法(2 * 3 = 6) 括号,以覆盖运算的常规优先级:2 *(3 + 4)= 14 每个给定的号码只能使用一次或根本不能使用。 例如,目标数字728可以与以下数字精确匹配:6、10、25、75、5和50,其表达式如下: 75 * 10 - ( ( 6 + 5 ) * ( 50 / 25 ) ) = 750 - …

5
不明智的位操作
我喜欢打高尔夫球dc,但有时由于dc没有按位操作而感到沮丧。 挑战 提供实现C位操作的相当于提高4层命名的功能&,|,~和^(按位AND,OR,NOT和XOR)。每个函数将使用两个操作数(~仅使用一个),这些操作数至少是32位无符号整数。每个函数将返回与操作数相同的位宽的无符号整数。 限制 您只能使用支持的操作dc。这些是: + - * / 算术加法,减法,乘法和除法 ~ 模(如果您的语言支持,则为divmod) ^ 求幂 | 模幂 v 平方根 > >= == != <= < 标准平等/不平等经营者 >> <<位移位运算符。 dc没有这些功能,但是由于它们是通过除以2的幂进行琐碎实现的,所以我将允许这些。 dc我使用(递归)宏和(不等式)操作笨拙地构建了控制结构。您可以使用您的语言具有的任何内置控制结构。 您也可以使用逻辑运算符 && || !,即使这些运算符不能直接在中使用dc。 你不能使用位运算符 &,|,~和^或平凡实现它们的任何功能。 另外,您不得使用内置的字符串转换基础运算符或函数。 还请考虑提供一个测试程序或在线编译器代码段(不包含在高尔夫球成绩中)以帮助您验证答案。

10
撤消平方根
您的工作是将小数转换回整数的平方根之和。结果必须具有至少6个有效十进制数字的精度。 输入: 一个数字表示平方根数,一个十进制表示近似数。 输入示例: 2 3.414213562373095 输出:整数分隔的空格,当平方根和加起来时,它们近似于原始十进制,至少精确到6个有效十进制数字。 解决方案中不允许零。 如果有多种解决方案,则只需打印一种。 输出示例(任意顺序): 4 2 这是因为Math.sqrt(4) + Math.sqrt(2) == 3.414213562373095。 这是代码高尔夫。最短的代码(带有可选的奖金)获胜! 总会有一个解决方案,但是如果在没有整数的解决方案的情况下您的程序输出“ No”,则表示-10。此外,如果您的程序打印所有解决方案(用换行符,分号或其他分隔符),而不是仅打印一个,则为-10。 测试用例: 3 7.923668178593959 --> 6 7 8 2 2.8284271247461903 --> 2 2 5 5.0 --> 1 1 1 1 1 5 13.0 --> 4 4 9 9 9 --> 81 …

4
使用ASCII艺术图可视化长除法
编写一个程序,以可视化方式用ASCII艺术进行长除法。使用您选择的输入格式,输入由两个整数组成:分子和分母。 例子: 1234÷56: 22 ---- 56|1234 112 --- 114 112 --- 2 1002012÷12: 83501 ------- 12|1002012 96 --- 42 36 -- 60 60 -- 12 12 -- 0÷35 0 - 35|0 规则: 编程语言的除法运算符的用途是允许的。 也允许使用大整数支持。 为了保持一致: 如果商为零,则在跳水板的末端打印一个零。 如果余数为零,请不要打印。 不要在任何数字上打印前导零。 末尾多余的换行符和右边的尾随空格是允许的。 字符最少的解决方案获胜。 限制: 0 <=分子<= 10 72 - 1 1 <=分母<= 9999999 …

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.