编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

5
墙上的91瓶ASCII啤酒
给定一个整数x,其中0 <= x <= 91输出一堆啤酒瓶,其中缺少许多瓶(和架子)。为简单起见,我将仅显示前6个瓶子,以及每个第一个输入的瓶子。 这是一堆瓶子,每个数字都是您应该为该输入(1索引)移除的瓶子: https://pastebin.com/wSpZRMV6 请注意,我们使用91而不是99,因为99会导致不稳定的瓶子堆叠。 例 缺少0瓶(x=0): |=| | | | | / \ . . |-----| | | |-----| |_____| ============= |=| |=| | | | | | | | | / \ / \ . . . . |-----| |-----| | | | | |-----| …

2
丢掉RNG
迷失是一种二维编程语言,其中ip的起始位置和方向完全是随机的。 这使得制作确定性的丢失程序非常困难。但是,今天我们不是在编写确定性程序,而是在编写RNG。 编写一个不输入任何内容并输出一个数字(0、1、2、3、4、5、6、7、8或9)的丢失程序,所有数字的输出概率相等。由于Lost的起始位置和方向是唯一的随机性来源,因此,唯一的方法是让您源中的每个位置输出一个从0到9的不同数字,并输出相等的数字。 您可以通过使用-Q标志并将其输送到此python脚本中来计算每个数字的概率 import sys a=sys.stdin.read().split()[:-1] for x in range(10):print x,':',a.count(`x`) print[x for x in a if x not in list("1234567890")] 在线尝试! 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 失落概述 迷失是一种包装式隐式IO 2D语言,它取材于克莱因的模范。这是丢失命令功能的快速摘要 \,/,|镜子的IP <,^,>,v点IP的方向 [反映ip是否向东移动;变成]如果ip在水平移动 ]反映ip是否向西移动;变成[如果ip在水平移动 ! 跳过下一个操作 ? 从堆栈顶部弹出,如果不为零,则跳转 : 复制堆栈的顶部 $ 交换堆栈的前两个项目 ( 从堆栈弹出并推送到示波器 ) 从示波器弹出并推入堆栈 0- 9将n推入栈顶 "开始和结束字符串文字。在字符串期间,不运行文字命令,而是将其字符值压入堆栈。 + 将前两个数字相加 * 将前两个数字相乘 …
17 code-golf  random  lost 

21
对我矩阵的增量求和
背景 整数数组的增量是通过获取连续元素的差形成的数组。例如,[1, 2, 4, 7, 3, 9, 6]具有以下增量:[1, 2, 3, -4, 6, -3]。 现在,我们将整数矩阵的增量定义为每一行及其包含的每一列的增量。 举个例子: Row deltas: 1 2 3 4 │ => [1, 1, 1] 4 5 6 7 │ => [1, 1, 1] 7 1 8 2 │ => [-6, 7, -6] Column deltas (the matrix' columns have …

11
埃塞俄比亚乘法
这个问题的灵感来自这个答案。碰巧的是,我小时候曾经使用埃塞俄比亚乘法,但直到最近才知道该方法的名称。 埃塞俄比亚乘法是仅使用加法,加倍和减半对整数进行乘法的方法。 方法: 取两个数字相乘,然后将其写下两列的顶部。 在左列中,将最后一个数字重复减半,舍弃所有余数,然后将结果写在同一列中的最后一个下面,直到写入值1。 在右侧栏中,重复将最后一个数字加倍,然后将结果写在下面。将结果添加到与左列显示1相同的行时停止。 检查生成的表,并丢弃左列中的值是偶数的任何行。将右侧列中的值相加,得出将原始两个数字相乘得到的结果。 例如:17 x 34 17 34 将第一列减半: 17 34 8 4 2 1 将第二列加倍: 17 34 8 68 4 136 2 272 1 544 删除第一个单元格为偶数的行,我们将这些数字放在方括号中的右边,以实现此目的: 17 34 8 [68] 4 [136] 2 [272] 1 544 将右侧栏中的剩余数字相加: 17 34 8 [68] 4 [136] 2 [272] …

23
简单复杂
输出量 ########## ### ## #### ########### #### ## ###### ####### ######### ##### ##### ##### ######## ####### ########## #### ################ ### ##### ######## ########### ### ## ######## ####### #### ###### ############# ####### ###### #### ####### ##### ## ########### #### ####### ####### #### ########### ## ###### ####### #### ###### ####### ############# ###### …

2
解决火柴拼图
在令人困惑的SE上,存在所谓的“火柴问题”,其中数学是用火柴写的,并且允许您移动一定数量的火柴以获得某种属性。 在这个问题中,我们将只考虑以7段显示格式表示的整数。这是该格式的所有10位数字: __ __ __ __ __ __ __ __ | | | __| __| |__| |__ |__ | |__| |__| |__| | |__ __| | __| |__| | |__| __| 显示屏的每个部分都是一个“火柴棍”,可以独立于其余数字移动。火柴是不可分割和坚不可摧的,不能以任何方式将其破坏或移走。 一个常见的难题是采用以10为底的给定数字,并尝试在给定的移动次数中使最大数字成为可能。一次移动被认为是火柴棍从任何占用的插槽到任何其他未占用的插槽的移动。完全可以在数字的两边输入新数字,例如0可以变成77给出3个移动 __ __ __ __ __ __ __ | | | | | | | | | |__| …

16
查找最长的代表数字
您的任务是将正数用作输入n,并输出任何基数中n的最长表示位表示形式的长度。例如,7可以表示为以下任何一种 111_2 21_3 13_4 12_5 11_6 10_7 7_8 代表数字是111_2和11_6,111_2更长,因此我们的答案是3。 这是一个代码问题,因此答案将以字节计分,而字节越少越好。 测试用例 1 -> 1 2 -> 1 3 -> 2 4 -> 2 5 -> 2 6 -> 2 7 -> 3 8 -> 2 9 -> 2 10 -> 2 11 -> 2 26 -> 3 63 -> 6 …

5
最快的可推算整数分解器
任务是找到一个复合数的重要因素。 在不超过140字节长的情况下,编写代码以尽可能快地找到复合数字的重要因素。输出应该只是您找到的因素。 您的代码可以采用任何方便的方式进行输入和输出,包括例如作为函数的参数。 列出所有因素的测试用例(您只需要输出一个) 187: 11 17 1679: 23 73 14369648346682547857: 1500450271 9576890767 34747575467581863011: 3628273133 9576890767 52634041113150420921061348357: 2860486313 5463458053 3367900313 82312263010898855308580978867: 264575131106459 311111111111113 205255454905325730631914319249: 2860486313 71755440315342536873 1233457775854251160763811229216063007: 1110111110111 1000000000063 1111111999999 1751952685614616185916001760791655006749: 36413321723440003717 48112959837082048697 在以下困难的测试案例中,我不会给您打分,这可能是您感兴趣的测试: 513231721363284898797712130584280850383: 40206835204840513073 12764787846358441471 得分了 您的分数是将以上所有测试用例分解的总时间,每个分解失败的惩罚为10分钟(均四舍五入到最接近的秒数)。您的代码也应该适用于其他整数,这不应该只是硬编码这些答案。 10分钟后,我将停止您的代码。 如果两个人获得相同的分数,则第一个答案将获胜。 限制条件 您的代码不能使用任何执行整数分解的内置函数或库函数。您可以假设输入少于256位。所有输入数字将是复合的。 我将如何计时? 我实际上将time ./myprog在Ubuntu系统上运行以进行计时,因此也请提供一个完整的程序供我运行,其中包括您定义的任何功能。 编译语言说明 在我的机器上,编译时间不得超过1分钟。 真的有可能吗? 如果您忽略空间限制,则可以在我的计算机上使用纯Python代码+ …

30
消失的元素
给定一个字符串S和一个索引列表X,S通过删除每个索引处的元素来进行修改,并将S结果作为的新值S。 例如,给定S = 'codegolf'和X = [1, 4, 4, 0, 2], 0 1 2 3 4 5 6 7 | c o d e g o l f | Remove 1 c d e g o l f | Remove 4 c d e g l f | Remove 4 c …
17 code-golf  string  array-manipulation  code-golf  string  ascii-art  code-golf  number  sequence  pi  code-golf  number  array-manipulation  code-golf  string  ascii-art  code-golf  math  number  game  code-golf  math  sequence  polynomials  recursion  code-golf  math  number  sequence  number-theory  code-golf  permutations  balanced-string  code-golf  string  ascii-art  integer  code-golf  decision-problem  hexagonal-grid  code-golf  ascii-art  kolmogorov-complexity  code-golf  number  code-golf  matrix  binary-matrix  code-golf  math  statistics  code-golf  string  polyglot  code-golf  random  lost  code-golf  date  path-finding  code-golf  string  code-golf  math  number  arithmetic  number-theory  code-golf  tetris  binary-matrix  code-golf  array-manipulation  sorting  code-golf  number  code-golf  array-manipulation  rubiks-cube  cubically  code-golf  grid  optimization  code-golf  math  function  code-golf  string  quine  code-golf  ascii-art  grid  code-golf  decision-problem  grid  simulation  code-golf  math  sequence  code-golf  path-finding  code-golf  ascii-art  grid  simulation  code-golf  number  whitespace  code-golf  sequence  code-golf  sequence  code-golf  sequence  integer  code-golf  math  game  code-golf  internet  stack-exchange-api  code-golf  sequence  code-golf  internet  stack-exchange-api  code-golf  math  factoring  code-challenge  sequence  polyglot  rosetta-stone  code-golf  string  browser  code-golf  date  code-golf  base-conversion  code-challenge  cops-and-robbers  hello-world  code-golf  cops-and-robbers  hello-world 

12
N皇后拼图
(尽管有超过60个问题标记为下棋,但我们没有简单的n皇后挑战。) 在国际象棋中,N-皇后之谜的描述如下:给定n x n棋盘和n皇后,将皇后排列在棋盘上,以使没有两个皇后相互威胁。以下是n = 8从Wikipedia借来的的示例解决方案。 或者,在ASCII渲染中: xxxQxxxx xxxxxxQx xxQxxxxx xxxxxxxQ xQxxxxxx xxxxQxxx Qxxxxxxx xxxxxQxx 这里的挑战将是输入n和输出n-Queens难题解决方案的ASCII表示形式。由于存在多个可能的解决方案(例如,至少是旋转或反射),因此您的代码仅需要输出任何有效的解决方案。 输入项 n具有n >= 4 任何方便格式的单个正整数。(n = 2和n = 3没有解,并且n = 1很小,因此将其排除在外) 输出量 如上所述,解决了N-queens难题的结果的ASCII表示形式。您可以选择任何两个不同的ASCII值来表示空格和皇后。同样,可以以任何合适的格式(单个字符串,字符串列表,字符数组等)输出。 规则 前导或尾随的换行符或空格以及字符之间的空格都是可选的,只要字符本身正确对齐即可。 您既可以使用算法来计算可能的位置,也可以使用显式的“阶梯式”解决方案样式,以哪种方式更适合您的代码。 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 如果可能,请提供一个在线测试环境的链接,以便其他人可以尝试您的代码! 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常见的高​​尔夫规则都适用,并且最短的代码(以字节为单位)获胜。 例子 n=4 xQxx xxxQ Qxxx xxQx n=7 xxQxxxx xxxxxxQ xQxxxxx xxxQxxx xxxxxQx Qxxxxxx xxxxQxx …

1
您今天失去了多少声誉?
假设由于年龄限制,StackExchange在删除帐户后仍未决定恢复我的帐户(即使我已经14岁,几乎是15岁),该网站上的许多人刚刚因删除我的投票而失去了声誉。这发生在UTC于2017年6月20日下午5:30左右。 因此,您面临的挑战是,在给定用户的PPCG ID的情况下,显示由于我的删除而丢失了多少PPCG信誉。 挑战 输入项 一个整数将代表用户在PPCG上的UUID。 输出量 一个整数将代表用户因此而失去的声誉。如果用户在同一小时内多次由于删除用户而失去声誉,那么如果程序返回错误用户的号码,则可以接受。如果用户从删除我的帐户中获得了声誉,则您的程序应返回负数以失去负声誉。最后,如果我在过去60天内没有对该用户进行投票,则您的程序应返回0。 测试用例 UUID -> REP-LOST (Username) # Don't output the username 40695 -> 22 (Downgoat) 12012 -> 148 (Dennis) 8578 -> 61 (Martin Ender) 您可以前往/codegolf//users/<UUID>/?tab=reputation&sort=post并寻找User was removed (learn more) 最初的想法归功于Uriel的批准 注意 感谢郑焕敏提供的链接! /codegolf//ajax/users/<UUID>/rep/day/1497916800 您可以从上面的此链接中获取用户声誉更改的原始数据。
17 code-golf 

21
其他事实!
在数学中,由n!表示的非负整数n的阶乘,缩短的“事实” 。是所有小于或等于n的正整数的乘积。例如5!是1 * 2 * 3 * 4 * 5 = 120 根据惯例,空乘的0阶乘为1。 这些是我们习惯的常规事实。让我们添加一些替代方法: 阶乘(上面定义) 双阶乘:n!= 1 + 2 + ... + n 三重因子:n!= 1-(2-(3-(...-n)))...) 四倍阶乘:n !!!! = 1 /(2 / /(3 ... / n)))...)。注意:这是浮点除法,而不是整数除法。 挑战 取一个非负整数输入n,紧跟着1到4个感叹号。输入看起来(完全)像这样:0!,5!,132!还是4个!!!。抱歉,在此挑战中,您可能不会采用灵活的输入格式。 输出量 输出应该是任何方便格式的结果。四阶阶乘的结果必须在小数点后至少2位,除了0 !!!! = 0。 测试用例: 0! = 1 1! = 1 2! …

4
不可能的立方体
问题 给定一个输入a,其中a为真值/伪造值,如果为true,则输出下面的确切不可能立方体,如果为falsey则输出下面的确切普通立方体。 输入truthy: ___________________________________ / _______________________________ /| / / _____________________________/ / | / / /| | / / | / / / | | / / | / / /| | | / / /| | / / / | | | / / / | | / / / …

25
一个简单的模式
输入: 您选择的输入格式中的两位数字(我们称它们为m和n)和两个字符(我们称其为a和b)。 输出: 对于演练,请假装m=2, n=5, a='a', b='b'。 您的输出将是根据四个输入构建的字符串。让我们result用value 调用字符串""。首先,连击a到result m时间,所以串连a到result 2倍。result现在等于aa。其次,连击b到result m时间,所以串连b到result 2倍。result现在等于aabb。最后,如果结果已经比更长n,请截断result它,使其具有length n。否则,继续交替使用m的长度运行a,并b直到result有长度n。最终result是aabba,它有长度5。 测试用例: Input: m = 2, n = 4, a = A, b = B Output: AABB Input: m = 3, n = 8, a = A, b = B Output: AAABBBAA Input: m = 4, n …
17 code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

12
这只是一个输入错误
继续我的那只是一个错误挑战: 输入: 一个字符串,由可打印的ASCII字符组成,没有空格和换行符。 输出: 首先,通过还原输入并将其添加到自身之前,将输入转换为回文,不包括中间字符(即使用输入1234567890,它将变为0987654321234567890))。 然后输出此文本: 0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0 0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0 0 9 8 7 6 5 …

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.