这是受到这个主题的启发:http://www.allegro.cc/forums/thread/603383
问题
假设用户为您提供1到7之间的数字输入.应从控制台输入,参数不太理想.
输入为1时,打印以下内容:
***********
*********
*******
*****
***
*
Run Code Online (Sandbox Code Playgroud)
大于1的值应生成模式的倍数,以上面的值结束,但对称堆叠.例如,3应该打印以下内容:
*********** *********** ***********
********* ********* *********
******* ******* *******
***** ***** *****
*** *** ***
* * *
*********** ***********
********* *********
******* *******
***** *****
*** ***
* *
***********
*********
*******
*****
***
*
Run Code Online (Sandbox Code Playgroud)
如果您也打印相反的奖励积分.
*********** ***********
********* *********
******* *******
***** *****
*** ***
* *
***********
*********
*******
*****
***
*
*
***
*****
*******
*********
***********
* *
*** ***
***** …Run Code Online (Sandbox Code Playgroud) 按字符数排序的最短代码将输出Morris数字序列.在莫里斯数列,又称外观数列是数字的顺序启动,如下所示:
1, 11, 21, 1211, 111221, 312211, ...
您可以无限生成序列(即,您不必生成特定的数字).
该程序不需要任何输入(但是接受输入的奖励点,从而提供从任意任意起点或数字开始的选项).至少你的程序必须从1.
输出至少是预期的顺序:
1
11
21
1211
111221
312211
...
Run Code Online (Sandbox Code Playgroud)
如果你需要额外的功劳,你需要做这样的事情:
$ morris 1
1
11
21
1211
111221
312211
...
$ morris 3
3
13
1113
3113
132113
...
Run Code Online (Sandbox Code Playgroud) 按字符数发布您的最短代码,以检查玩家是否赢了,如果是,那么.
假设你在变量b(board)中有一个整数数组,它包含Tic Tac Toe板,以及玩家的移动:
所以,鉴于阵列b = [ 1, 2, 1, 0, 1, 2, 1, 0, 2 ]将代表董事会
X|O|X
-+-+-
|X|O
-+-+-
X| |O
Run Code Online (Sandbox Code Playgroud)
对于这种情况,您的代码应该输出1以指示玩家1赢了.如果没有人赢了你可以输出0或false.
我自己的(Ruby)解决方案即将推出.
编辑:对不起,忘了将其标记为社区维基.您可以假设输入格式正确,不必进行错误检查.
更新:请以函数的形式发布您的解决方案.大多数人已经这样做了,但有些人没有,这不完全公平.电路板作为参数提供给您的功能.结果应该由函数返回.该函数可以具有您选择的名称.
按字符计数的最短代码,用于从输入字符串生成波形.
通过提升(第1行)较高字符并使(第1行)降低较低字符来生成波.相等的字符保持在同一行(没有提升或降级).
输入仅由小写字符和数字组成,字母被认为高于数字.
Input:
1234567890qwertyuiopasdfghjklzxcvbnm
Output:
z
l x v n
k c b m
j
h
g
y p s f
t u o a d
w r i
9 q e
8 0
7
6
5
4
3
2
1
Input:
31415926535897932384626433832795028841971693993751058209749445923078164062862
Output:
9 9 8 6 6
9 6 8 7 3 3 4 2 4 8 9 88
3 4 5 2 5 5 2 33 3 7 5 2 4 9 9 99 …Run Code Online (Sandbox Code Playgroud) 这有点儿有趣.你可以设计一个最短的程序,它可以编译但什么都不做,但在执行时会立即崩溃?因此,"崩溃"意味着程序因错误条件(例如核心转储)而停止.
是否有一种语言使用gcc编译器比C语言崩溃更快(7个字符)?[我留下这个答案供有人找.]
(应该允许使用编译器标志.否则7现在不能工作,编译器检查变得更好.)
[结果评估]我无法标记单个答案,因为多种语言有多个正确答案.将一个答案换成另一个答案是不公平的.请用投票选出最佳答案.
代码高尔夫的常用规则.这是python中的一个实现作为示例
from PIL import Image
im = Image.new("RGB", (300,300))
for i in xrange(300):
print "i = ",i
for j in xrange(300):
x0 = float( 4.0*float(i-150)/300.0 -1.0)
y0 = float( 4.0*float(j-150)/300.0 +0.0)
x=0.0
y=0.0
iteration = 0
max_iteration = 1000
while (x*x + y*y <= 4.0 and iteration < max_iteration):
xtemp = x*x - y*y + x0
y = 2.0*x*y+y0
x = xtemp
iteration += 1
if iteration == max_iteration:
value = 255
else:
value = iteration*10 % 255
print value …Run Code Online (Sandbox Code Playgroud) 代码高尔夫系列似乎相当受欢迎.我遇到了一些将数字转换为单词表示的代码.一些例子是(编程乐趣的2的权力):
我的同事出现的算法差不多有两百行.似乎会有更简洁的方法来做到这一点.
现行指南:
生成一个列表列表(或打印,我不介意)一个大小为N 的Pascal三角形,代码可能最少!
这是我的尝试(使用技巧在python 2.6中的 118个字符):
c,z,k=locals,[0],'_[1]'
p=lambda n:[len(c()[k])and map(sum,zip(z+c()[k][-1],c()[k][-1]+z))or[1]for _ in range(n)]
Run Code Online (Sandbox Code Playgroud)
说明:
[1][1]并制造[0,1]和[1,0][(0,1),(1,0)]并用sum来映射.用法(漂亮的打印,实际上是代码-golf xD):
result = p(10)
lines = [" ".join(map(str, x)) for x in result]
for i in lines:
print i.center(max(map(len, lines)))
Run Code Online (Sandbox Code Playgroud)
输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 …Run Code Online (Sandbox Code Playgroud) algorithm code-golf combinatorics discrete-mathematics pascals-triangle
最短的代码,按字符计数输出由以下ASCII三角形构成的Sierpinski三次N次迭代的ASCII表示:
/\
/__\
Run Code Online (Sandbox Code Playgroud)
输入是一个正数.
Input:
2
Output:
/\
/__\
/\ /\
/__\/__\
Run Code Online (Sandbox Code Playgroud)
Input:
3
Output:
/\
/__\
/\ /\
/__\/__\
/\ /\
/__\ /__\
/\ /\ /\ /\
/__\/__\/__\/__\
Run Code Online (Sandbox Code Playgroud)
Input:
5
Output:
/\
/__\
/\ /\
/__\/__\
/\ /\
/__\ /__\
/\ /\ /\ /\
/__\/__\/__\/__\
/\ /\
/__\ /__\
/\ /\ /\ /\
/__\/__\ /__\/__\
/\ /\ /\ /\
/__\ /__\ /__\ /__\
/\ /\ /\ /\ /\ /\ /\ /\
/__\/__\/__\/__\/__\/__\/__\/__\
/\ /\
/__\ /__\
/\ …Run Code Online (Sandbox Code Playgroud) 来自:加密公司
收件人:x $*sj4(就是你)
如果您选择接受它,您的任务就是用最短的击键次数创建一个程序
采用两个文件名参数(命令行或标准输入),第一个是包含密钥的文件,第二个是一些消息.这两个文件都是纯文本.
使用XOR加密将密钥应用于邮件,覆盖文件.
例:
输入文件:
StackOverflow很酷
键:
Code Golf
加密输出文件的十六进制转储:
0000000: 101b 0506 4b08 1909 1425 030b 1200 2e1c ....K....%......
0000010: 4c25 2c00 080d 0a L%,....
Run Code Online (Sandbox Code Playgroud)
为简单起见,假设文件可以适合内存
此消息将在5 ... 4 ... 3 ... 2 ... 1中自加密...
#####
#### _\_ ________
##=-[.].]| \ \
#( _\ | |------|
# __| | ||||||||
\ _/ | ||||||||
.--'--'-. | | ____ |
/ __ `|__|[o__o]|
_(____nm_______ /____\____
Run Code Online (Sandbox Code Playgroud)
如果密钥的大小大于或等于消息的大小并且密钥是由无偏的随机过程生成的,则XOR加密是不可能破解的.见:一次性垫.所以这里没有"糟糕的加密".
code-golf ×10
algorithm ×1
encryption ×1
fractals ×1
mandelbrot ×1
nlp ×1
tic-tac-toe ×1
xor ×1