Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

27
产生一个发音单词
挑战很简单: 产生一个单词。 规格: 单词必须是可发音的。 这被定义为“在辅音和元音之间交替”。 辅音是以下字母之一: bcdfghjklmnpqrstvwxz 元音是以下字母之一: aeiouy 单词必须随机生成。 单词必须能够包含所有辅音和元音。(您不能只bcdf用于辅音和aei元音。) 单词必须包含10个字母。 最短的代码(以字符数计)获胜。

3
Post-It的安全性
如您所知,黑客无处不在,他们想入侵一切。您被要求提出密码要求,这将阻止任何黑客。问题是,您的老板听说为LOC付费是邪恶的,他付给您$ 1800-$ 0.03 *每月插入的字符,使您写出可能可行的最简单的东西。因此,您必须使用少量字符(希望很小),否则就不用花钱了。同样,您的老板不在乎您将使用哪种语言。 良好密码的要求与上述文章类似,只是删除了基于字典的要求,以避免使解决方案依赖于外部文件,您不必检查是否重新排列了字母(很难理解其实际含义),最后一条规则被删除(3/4是什么?),它不检查旧密码。 从链接的文章中删除某些要求后的确切要求是: 至少有8个字符! 不能超过12个字符! 有大小写字符! 最多包含8个大写字母! 最多包含8个小写字母! 至少有2个字母! 有一封领导信! 至少有1位数字! 不是您的用户名! 不要将您的用户名倒退! 不包含您的用户名! 向后不包含您的用户名! 最多有1对重复字符! 没有3个出现次数相同字符的! 不含克拉(^) 没有空间 不包含= 不conatain& 不含 # 不含 , 不conatain ; 不含 ” 不包含> 不包含< 不含 [ 不包含 不含 ) 此列表上的所有拼写错误均保留原样。 $ ./checkpass Username: John Password: L!]E2m69 OK. $ ./checkpass Username: …
16 code-golf 

6
Code Golf:混合坚果,以免碰到任何同种坚果
输入: 输入是随机排列的螺母数组(使用您的语言),随后可能是螺母。您的程序必须具有表示每种螺母的方式,例如整数代码。程序必须能够处理任何大小的螺母配置的数组。 可能的坚果: Kola nut Macadamia Mamoncillo Maya nut Mongongo Oak acorns Ogbono nut Paradise nut Pili nut Pistachio Walnut 输出: 输出必须以没有相邻螺母种类的方式对数组进行排序。如果这不可能,则输出应为空数组。 输入示例(简体): ["walnut", "walnut", "pistachio"] 示例输出: ["walnut", "pistachio", "walnut"] 解决方案可能不会简单地随机排列数组,直到偶然地使其变得唯一。使用的排序必须是确定性的

15
城市名称游戏
如果愿意,可以编写一个根据城市名称游戏规则对城市进行排序的程序。 城市的每个名称应从前一个城市名称的最后一个字母开始。例如Lviv -> v -> Viden -> n -> Neapolis -> s -> Sidney -> y -> Yokogama -> a -> Amsterdam -> m -> Madrid -> d -> Denwer 在排序列表中,第一个城市的第一个字母和最后一个城市的最后一个字母不应该匹配,不必是相同的字母。 您可以假设城市名称只有字母。 程序输出应与输入大写相同 例: % ./script Neapolis Yokogama Sidney Amsterdam Madrid Lviv Viden Denwer ["Lviv", "Viden", "Neapolis", "Sidney", "Yokogama", "Amsterdam", …

10
(最多)5个素数的总和
陶仁涛最近证明了哥德巴赫猜想的一种弱形式!让我们利用它! 给定一个奇数整数n > 1,n最多写5个素数。随心所欲输入,随心所欲输出。例如, def g(o): for l in prime_range(o+1): if l == o: return l, for d in prime_range(l+1): for b in prime_range(d+1): if l+d+b == o: return l,d,b for c in prime_range(b+1): for h in prime_range(c+1): if l+d+b+c+h == o: return l,d,b,c,h 是Sage代码,它将整数作为输入,并返回一个整数列表作为输出,其和为n。根据陶定理,这将永远终止! 输入值 一个奇数整数n。您可以决定如何接受输入,但是如果很奇怪,请解释一下。 输出量 相当开放。返回列表。打印一个字符串。给一个,几个或全部。将废话以可预测的方式放在堆栈(GS,Piet等)上或连续(可访问)的内存块(BF等)中。对于这些以后的情况,请解释输出。在所有情况下,退货/打印/拥有的内容应该是n素数分区少于6个部分的简单表示。 计分 …
16 code-golf  math  primes 

13
建立一个模拟时钟
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 编写一个程序,使用ASCII图形将当前系统时间显示为模拟时钟。时钟必须至少显示小时和分钟指针,并且必须具有至少5分钟的足够分辨率。 显示屏可能很小也很丑,但是显示的时间应该很容易辨认。 该程序必须连续运行并更新其状态。如果您的系统可以清除屏幕,请使用它,否则当状态更改时足以重绘时钟。 如果时钟的分辨率至少为1分钟,您将获得-20%的字符数奖励。

3
高尔夫代码:通过解析英语解决“骑士与刀子”的逻辑问题
背景 有两个人,比尔和约翰。其中一个是骑士,总是说出真相,另一个是小刀,总是说出谎言。您不知道谁是骑士,谁是骑士。然后每个人都说几句关于谁是小刀和谁是骑士。使用此信息,您必须得出结论,谁是骑士,谁是骑士。 的骑士和无赖逻辑问题是基于Booleen代数。一个人说的话构成了Booleen可满足性问题。骑士的陈述必须始终为false,其他骑士的陈述必须始终为true。 约翰说:“我既是个刀匠,比尔也是个刀匠”。如果约翰是骑士,那么这个说法将是错误的,因此他不能成为骑士。如果他是骑士,而比尔是骑士,那么即使第一部分是正确的,这个陈述仍然是错误的。所以,约翰是个k夫。 挑战 您面临的挑战是编写尽可能最短的程序,该程序将列出每个人的声明列表,并弄清楚谁是骑士,谁是骑士。有很多细节要介绍,因此在三个部分中描述了此问题。 输入值 输入将是两行,后跟一个换行符。每行将给出一个字符的名称,后跟一个冒号,然后是该人说的几句话。如果一个人是骑士,那么他所有的句子都是正确的,而所有那位知识分子的句子都是错误的。句子的第一个字母将始终大写,并且每个句子将以句号结尾。这是一个例子: Joe: Both I am a knight and neither Steve is a knave nor I am a knave. Steve: Joe is a knave. Either Joe is a knight or I am a knight. 解析中 每个句子至少包含一个从句。每个子句包含以下几项之一(希望您能理解我的表示法): both [clause] and [clause] either [clause] or [clause] …

6
生成随机的Boggle棋盘
生成一个4x12的字母/空格网格: 每个骰子应该出现一次,位置随机选择。位置应近似为骰子的均匀随机排列。显示每个模具的随机(再次,近似均匀)的面。在3个字符的窗口中左对齐脸部。例如, A E A A E C D E D A Qu E E A H D 是我想要的格式的非随机板。允许尾随空格。 骰子: A A E E G N E L R T T Y A O O T T W A B B J O O E H R T V W …
16 code-golf  boggle 

8
最短,字典上最小的生成字符串
如果是的无限重复的子字符串,则字符串会x 生成一个字符串。例如产生。yyxabcbcabcab 编写程序以查找将生成输入的最短,字典最小的字符串。在标准输入上会为您提供单行文本。您应该将生成的字符串打印到标准输出。例如: 输入 bcabcabca 输出 abc 最短的代码获胜。您可以假设输入仅包含字符az(如果需要,还可以包含尾随换行符)。

10
Clojure打高尔夫的秘诀
使用Clojure打高尔夫球的技巧是什么? 这个问题的目的是收集特定于Clojure的技术列表,这些技术可用于一般的代码高尔夫问题。
16 code-golf  tips  lisp 

5
解决2-SAT(布尔可满足性)
一般的SAT(布尔可满足性)问题都是NP完全的。但是2-SAT(其中每个子句只有2个变量)位于P中。写一个2-SAT的求解器。 输入: 2-SAT实例,在CNF中编码如下。第一行包含V(布尔变量的数量)和N(子句的数量)。然后,紧接着N行,每行都有2个非零整数,表示子句的文字。正整数表示给定的布尔变量,负整数表示变量的取反。 例子1 输入 4 5 1 2 2 3 3 4 -1 -3 -2 -4 它编码公式(x 1或x 2)和(x 2或x 3)和(x 3或x 4)和(不是x 1或不是x 3)和(不是x 2或不是x 4)。 使整个公式为true的4个变量的唯一设置是x 1 = false,x 2 = true,x 3 = true,x 4 = false,因此您的程序应输出单行 输出 0 1 1 0 表示V变量的真值(从x 1到x V的顺序)。如果有多个解决方案,则可以输出它们的任何非空子集,每行一个。如果没有解决方案,则必须输出UNSOLVABLE。 例子2 …
16 code-golf 

9
2的幂的后k位
对于任何整数,都有一个2的幂,最后一个位数为1或2。r[Rrr[Rr 给定,找到最小的,使得仅包含1或2。r[RrxXx2xmod10r2X模10[R2^x\bmod{10^r} 对于r=2[R=2r=2,x=9X=9x=9,因为29=51229=5122^9=5\color{blue}{\textrm{12}} 对于r=3[R=3r=3,x=89x=89x=89,因为289=618970019642690137449562112289=6189700196426901374495621122^{89}=618970019642690137449562\color{blue}{\textrm{112}} 注意:r=4r=4r=4,xxx是=89=89=89(再次) 输入:r≤100r≤100r \leq 100 输出:xxx 例如。 输入:2 输出:9 输入:3点 :89 该程序应在合理的时间内运行。 编辑:此挑战的oeis序列是A147884。

30
毫不留情的数字
一个波状号码是一个号码,其中其数字之间交替向上和向下像下面的编号:461902或708143,或甚至1010101,但不是123,因为2 <3。 写一个程序或功能,如果一个数是它返回一个truthy值起伏,否则一个falsy值。最短的代码获胜。 注意:一位数字是有效输入,但不视为udulant,因此isUndulant对于n <10 ,返回false。

23
使用给定的括号缩进字符串
给程序以下输入: 块开始字符列表 块结束字符列表 要格式化的字符串 使用以缩进的两个字符集分隔的块来格式化字符串。 格式化是在每个级别上用两个空格完成的,并且括号的放置如下例所示。您可以假定开头和结尾字符集是不相交的。 例如{[(<,}])>作为和作为开始和结束字符集以及以下字符串: abc{xyz{text[note{comment(t{ex}t)abc}]}} 预期以下输出: abc { xyz { text [ note { comment ( t { ex } t ) abc } ] } } 您可能没有对“括号”字符列表进行硬编码。但是,没有指定输入方式。您可以根据需要使用命令行参数或通过标准输入。

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.