Questions tagged «arithmetic»

与基本算术有关的挑战。

14
用零填充文件
今天的任务是获取一个现有文件,并将零添加到该文件,直到达到一定大小为止。 您必须编写一个程序或函数,该程序或函数采用当前目录中文件的名称f和字节数b。在保留的原始内容的同时f,您必须在末尾写入零(空字节,而不是ascii 0),以便其新大小为b字节。 您可以假设名称中f仅包含字母数字的ascii,您对此具有完全权限,其初始大小不大于b,但可能与一样大b,并且有无限的可用磁盘空间。 您可能不会假设f它是非空的,或者它不已经包含空字节。 执行结束后,不应修改其他现有文件,也不应该存在新文件。 测试用例 f的内容| b | f的结果内容 12345 | 10 | 1234500000 0 | 3 | 000 [空] | 2 | 00 [空] | 0 | [空] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

3
网格可以弯曲。你多久了?
考虑在W宽x H高的文本网格上绘制一条简单的,开放的二维曲线,其中X该曲线.表示曲线的一部分,表示空白,不使用其他任何字符。 每个网格空间都有8个相邻的网格空间,即Moore邻域。边界之外的网格空间被认为是空的。 网格包含曲线,如果有且只有一个X OR,如果有一个以上的X地方: 正好2个X只有一个相邻X。这些是曲线的端点。 X除端点外,每个端点都恰好相邻2 Xs。这些构成了曲线的主体。 例如,此W = 9而H = 4的网格包含一条曲线: ....X.... .X.X.X.X. X..X..X.X .XX.....X 同样,这些网格(W = 4,H = 3)具有曲线: .... .X.. .... .... .X.X .... X..X ..X. XX.. X.X. ..X. .XX. .X.. .... .... 但是,这些网格不包含曲线: .... .XX. ...X XX.. .... X.X. .... X..X ..XX XX.. .X.X .X.. …

1
证明2 + 2 = 2 * 2(和类似的)
输出此类陈述的完整正式形式,例如1+2=3,2+2=2*(1+1)等。 介入 如果您知道Peano Arithmetic,则可以跳过本节。 这是我们定义自然数的方法: (Axiom 1) 0 is a number (Axiom 2) If `x` is a number, the `S(x)`, the successor of `x`, is a number. 因此,例如S(S(S(0)))是一个数字。 您可以在代码中使用任何等效的表示形式。例如,所有这些都是有效的: 0 "" 0 () ! 1 "#" S(0) (()) !' 2 "##" S(S(0)) ((())) !'' 3 "###" S(S(S(0))) (((()))) !''' ... …

3
音位错误
性格 我们将这些Unicode字符称为英语IPA辅音: bdfhjklmnprstvwzðŋɡʃʒθ 我们将这些Unicode字符称为 英语IPA元音: aeiouæɑɔəɛɜɪʊʌː (是的,ː这只是长元音标记,但出于此挑战的目的,请将其视为元音。) 最后,这些是主要和次要压力标记: ˈˌ 注意,ɡ(U + 0261)不是小写的g,主应力标记ˈ(U + 02C8)不是撇号,并且ː(U + 02D0)不是冒号。 你的任务 给出一个单词,将元音堆叠在跟随的辅音之上,并将重音标记放置在其跟随的辅音下方。(正如问题标题所暗示的,这样的书写系统将辅音元音序列作为一个单元打包在一起,称为abugida。)给定输入ˈbætəlʃɪp,产生输出: æə ɪ btlʃp ˈ 甲字被保证是声母,韵母和应力标记的字符串,如上面所定义。永远不会有连续的重音标记,它们将始终放置在单词的开头和/或辅音之前。 测试用例 可能有连续的元音。例如,kənˌɡrætjʊˈleɪʃən变为 ɪ ə æ ʊeə knɡrtjlʃn ˌ ˈ 如果一个词以元音开头,打印在“基线”与辅音:əˈpiːl变 ː i əpl ˈ 一个测试用例的初始,强调元音:ˈælbəˌtrɔs变 ə ɔ ælbtrs ˈ ˌ 一句话:ˌsuːpərˌkaləˌfrædʒəˌlɪstɪˌkɛkspiːæləˈdoʊʃəs变成 æ ː ː ʊ uə aə …

30
输出字符串的累积斜率
挑战 给定一个字符串,例如Hello World!,将其分解为字符值:72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33。 然后计算每对连续字符之间的差:29, 7, 0, 3, -79, 55, 24, 3, -6, -8, -67。 最后,对它们求和并打印最终结果:-39。 规则 适用标准漏洞 请勿使用执行此确切任务的预制函数 鼓励创意解决方案 玩得开心 这被标记为code-golf,以字节为单位的最短答案将获胜,但不会被选择。

2
解释基普尔!
介绍 Kipple是Rune Berg于2003年3月发明的基于堆栈的深奥编程语言。 Kipple有27个堆栈,4个运算符和一个控制结构。 堆栈 堆栈被命名为a- z并包含32位带符号整数。还有一个特殊的堆栈,@使输出数字更加方便。当将数字压入时@,实际上将压入该数字的ASCII值。(例如,如果您将12推到@,它将推49,然后推50。@) i在执行程序之前,将输入压入输入堆栈。解释器将i在执行之前要求存储值。执行完成后,输出堆栈上的所有内容o都会弹出以ASCII字符形式输出。由于这是Kipple唯一的IO机制,因此无法与Kipple程序进行交互。 经营者 操作数可以是堆栈标识符或带符号的32位整数。 推送:>或< 语法:Operand>StackIndentifier或StackIndentifier<Operand Push运算符将操作数向左移并将其推入指定的堆栈。例如,12>a将值12推入stack a。a>b将从堆栈中弹出最高值a并将其推入堆栈b。弹出空堆栈总是返回0 a<b相当于b>a。a<b>c从弹出最高值,b并同时推入c和a。 加: + 句法: StackIndentifier+Operand Add运算符将堆栈上最顶层项目和操作数之和压入堆栈。如果操作数是堆栈,则从中弹出值。例如,如果堆栈的最高值为a1,a+2则将3压入堆栈。如果a为空,a+2则将2推入。如果堆叠的最值a和b是1和2,然后a+b将从栈中弹出的值2 b和3推入堆栈a。 减去: - 句法: StackIndentifier-Operand 减法运算符的工作方式与加法运算符完全相同,只是它减去而不是加法。 明确: ? 句法: StackIndentifier? 如果最上面的项目为0,则Clear运算符将清空堆栈。 解释器将忽略操作符旁边不存在的所有内容,因此以下程序将起作用:a+2 this will be ignored c<i。但是,添加注释的正确方法是使用#字符。#执行前,a 和行尾字符之间的所有内容都将被删除。ASCII字符#10在Kipple中定义为行尾。 操作数可以由两个运算符共享,例如a>b c>b c?可以写为a>b<c?。 该程序1>a<2 a+a将导致a包含值[1 4](从下到上),而不是[1 3]。对于-操作员也是如此。 控制结构 Kipple中只有一种控制结构:循环。 句法: (StackIndentifier code …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

9
查找小数表示形式的重复!
在2年前的这一挑战中,我们发现了一个单位分数()的周期1/n where n is a natural number。 现在,您的任务是编写一个程序/函数来查找单位分数的重复项。 该repetend是十进制扩展其重复无限,等的部分: 的十进制表示形式1/6是0.16666...,则重复数为6。 的十进制表示形式1/11是0.090909...,则重复数为09。 的十进制表示形式1/28是0.0357142857142857142857...,则重复数为571428。 眼镜 以任何合理的格式输入。 用十进制,字符串或list输出重复。 对于1/7(0.142857142857...),您必须输出142857而不是428571。 对于1/13(0.076923076923076923...),您必须输出076923而不是76923。 请不要蛮力。 测试用例 Input Output 1 0 2 0 3 3 7 142857 13 076923 17 0588235294117647 28 571428 70 142857 98 102040816326530612244897959183673469387755 9899 000101020305081321345590463683200323264976260228305889483786241034447924032730578846348115971310233356904737852308313971108192746742095161127386604707546216789574704515607637135064147893726639054449944438832205273259925244974239822204263056874431760783917567431053641781998181634508536215779371653702394181230427315890493989291847661379937367410849580765733912516415799575714718658450348520052530558642287099707041115264168097787655318719062531568845337912920497019901 计分 这是代码高尔夫球。以字节为单位的最短解决方案获胜。 没有答案会被接受,因为目标不是找到能够产生最短解决方案的语言,而是找到每种语言中最短解决方案的语言。 排行榜 显示代码段 var QUESTION_ID=78850,OVERRIDE_USER=42854;function answersUrl(e){return"http://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"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function …

23
多边形数
多边形数是ksize的一个点中的点数n。 您将得到n和k,并且您的任务是编写一个输出/打印相应编号的程序/功能。 计分 这是代码高尔夫球。以字节为单位的最短解决方案获胜。 例 的3RD六边形数(k=6, n=3)是28因为有28上面的点。 测试用例 可以从此Pyth测试套件生成。 用法:每个测试用例n在上,k下两行。 n k output 10 3 55 10 5 145 100 3 5050 1000 24 10990000 更多信息 在Wikipedia中:https://en.wikipedia.org/wiki/Polygonal_number 在Wolfram Mathworld中:http : //mathworld.wolfram.com/PolygonalNumber.html 在OEIS Wiki中:http : //oeis.org/wiki/Polygonal_numbers 各种n的n角数的OEIS序列:3 (A000217),4 (A000290),5 (A000326),6 (A000384),7 (A000566),8 (A000567),9 (A001106),10 (A001107),11 (A051682),12 (A051624),13 (A051865),14 (A051866),15 (A051867),16 (A051868),17 …

4
帮助重新计算您的代表!
几个月前,我们在meta上进行了讨论,讨论如何提高因问题投票而获得的声誉。这是我们目前的投票信誉系统的基础:1 问题投票U值得5个声望。 回答投票u值得10个声誉。 问题或答案不满意d的人值得-2声望。 对于新系统,已经有许多不同的建议,但是当前最受欢迎的与上面的相同,但是问题投票的比例扩大到+10个代表。这项挑战是要计算出安装该系统后您将获得多少代表。 让我们来看一个例子。如果投票活动为UUUUuuuuUUUUUduuudUU,则在当前系统下,您的收入为121: U x 4 x 5 = 20 = 20 u x 4 x 10 = 40 = 60 U x 5 x 5 = 25 = 85 d x 1 x -2 = -2 = 83 u x 3 x 10 = 30 = …

4
平滑vs.矮胖vs.断花体
基于块状vs.平滑字符串。 /\_/\/\__/\/\/\/\_/\_/\当您真的很无聊时,在键盘上制作花粉很有趣。但是,并非所有的花鼓都是一样的。有些花鼓是光滑的,例如\___/,而有些是矮胖的,例如/\/\/\/\。其他人则完全崩溃,例如////_\\\ 在每个N字形字符中,都有字形N-1连接点。每个弯头连接点分为以下三种类型之一: 平滑(角度>“ 90度”): \_ __ _/ 矮胖(角度=“ 90度”) /\ \/ 坏了(没有连接的任何东西) // \\ /_ _\ 让我们来定义的平滑度是那些光滑,结的比例chunkiness和破碎类似定义。每个值的范围在0和之间1。花样的光滑度,粗大度和断裂度之和始终等于1。 例如,该花体/\/\\_//\_具有3个平滑结,4个块状结和2个折断结。因此0.3333,它是光滑,0.4444厚实和0.2222破碎的。 空字符串和只有一个字符的字符串具有未定义的值,所有输入的长度至少为2个字符。 挑战 编写一个程序,接受任意长度的花样,并输出其平滑度,块度和破损值中的任意两个。 您可以编写程序或函数,并通过STDIN,命令行或字符串参数输入。 您可以假定输入的长度至少为> = 2,并且仅由/\_带有可选尾随换行符的字符组成。 打印(或返回一个函数)两个浮点数的精度至少为四舍五入,四舍五入或截断。如果真实值为2/3,可接受的值包括0.6666和之间的任何值0.6667,甚至是诸如0.666637104。如果确切值为1/3,则任何包含的答案0.3333都是有效的。如果值小于1,则可以省略尾随零,也可以省略前导零。 根据需要输出三个值中的任意一对,只需确保说明两个值和顺序。 以字节为单位的最短代码获胜。 例子 /\/\\/\//\\→平滑0,Chunkiness 0.7,残破0.3 _/\\_/\\/__/\\\//_→平滑0.29411764705,Chunkiness 0.29411764705,残破0.41176470588 //\\__/_\/→平滑0.3333333,Chunkiness 0.2222222,残破0.4444444 奖励问题:您更喜欢哪个,平滑的,粗大的或折断的花形?

1
有效迷宫数
给定一个WxH网格,有多少种可能的迷宫? 您对迷宫的了解: 网格正好是H正方形,W正方形是正方形。 共有三种类型的正方形:“开始”,“完成”和“空”。迷宫必须正好包含1个开始点和1个结束点,所有剩余的方块均为空。 整个迷宫周围都有墙壁。 除非违反以下规则,否则墙可以存在于任意两个正方形之间的边缘上: 从开始方块到完成方块必须存在一条路径。 因此,给定两个数字W和H,您必须返回一个数字,代表可能的正方形/墙壁配置的数目。您保证W*H > 1 例如,2x2迷宫具有完全100不同的可能配置。 这是一个代码高尔夫球,所以最短的答案是成功的!

3
计算pi的幂的截断数字总和
给定一个正整数Ñ输出的第一总和Ñ的小数部分的十进制数字π Ñ。 输入和输出示例: 1→1 2→14 3→6 4→13 5→24 50→211 500→2305 5000→22852 不允许使用内置函数计算π位数或评估幂级数或连续分数。有标准漏洞。输入/输出可以采用方便的格式(stdin,stdout,功能输入/输出等)。 以字节为单位的最短代码获胜。

5
有多少种方法将N写入M个整数?
给定一个整数N,计算将其表示为M个整数> 1 的乘积的多少种方式。 输入只是N和M,输出是不同整数组的总数。意味着您可以多次使用整数,但是每个组必须是不同的(3 x 2 x 2如果2 x 2 x 3存在,则不计算在内)。 约束条件 1 < N <2 31 1 < M <30 例子 输入可以30 2给出输出3,因为它可以用三种方式表示: 2 x 15 3 x 10 5 x 6 Input 16 3提供output 1,因为只有一个不同的组: 2 x 2 x 4 输入2310 4给出输出10: 5 x 6 x 7 …

7
混合基数转换
背景 这里的大多数人应该熟悉几种基本系统:十进制,二进制,十六进制,八进制。例如,在十六进制系统中,数字12345 16将代表 1*16^4 + 2*16^3 + 3*16^2 + 4*16^1 + 5*16^0 请注意,我们通常不希望基数(此处为16)从数字更改为数字。 这些常用的位置系统的一般化使您可以为每个数字使用不同的数字基础。例如,如果我们在十进制和二进制系统之间切换(从最低有效数字的底数为10开始),则数字190315 [2,10]表示 1*10*2*10*2*10 + 9*2*10*2*10 + 0*10*2*10 + 3*2*10 + 1*10 + 5 = 7675 我们将此基准表示为[2,10]。最右边的基数对应于最低有效数字。然后,当您浏览数字(左边)时,您要经过底数(左),如果位数比基数多,则四处循环。 有关更多阅读,请参阅Wikipedia。 挑战 编写一个程序或函数,给定一个D由输入基数I和输出基数组成的数字列表O,将所表示的整数D从base 转换I为base O。您可以通过STDIN,ARGV或函数参数获取输入,然后返回结果或将其打印到STDOUT。 您可以假设: 在数字I和O都大于1。 在I与O非空。 输入数字在给定的基数中有效(即,没有比其基数大的数字)。 D可以为空(表示0)或可以有前导零。您的输出不应包含前导零。特别是,表示结果的结果0应作为空列表返回。 您不得使用任何内置或第三方基本转换功能。 这是代码高尔夫球,最短的答案(以字节为单位)获胜。 例子 D I O Result [1,0,0] [10] [2] [1,1,0,0,1,0,0] …

6
实现一个8位加法器
挑战 实现一个函数,该函数接受值范围为0-255的两个整数,并返回这些整数的总和256。您只能使用按位取反(〜),按位或(|),移位运算符(>>,<<) ,以及赋值(=)。 您不能使用的东西包括(但不限于) 加,减,乘和除 循环 条件语句 函数调用 最好使用二进制或二进制取反以及移位操作。如果出现平局,则最受欢迎的解决方案将获胜。与往常一样,存在标准漏洞。 这是一个简单的2位加法器的示例。它使用77个二进制取反,28个二进制“或”和2个移位,总共得到107分(可以通过运行带有C的预处理器来看到gcc -E)。通过删除#defines并简化结果表达式,可以使其效率更高,但是为了清楚起见,我将其保留了下来。 #include <stdio.h> #define and(a, b) (~((~a)|(~b))) #define xor(a, b) (and(~a,b) | and(a,~b)) int adder(int a, int b) { int x, carry; x = xor(and(a, 1), and(b, 1)); carry = and(and(a, 1), and(b, 1)); carry = xor(xor(and(a, 2), and(b, 2)), …

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.