按字符计数的最短代码输入板的2D表示,并根据输入输出"true"或"false" .
该板由4种类型的瓷砖制成:
# - A solid wall
x - The target the laser has to hit
/ or \ - Mirrors pointing to a direction (depends on laser direction)
v, ^, > or < - The laser pointing to a direction (down, up, right and left respectively)
Run Code Online (Sandbox Code Playgroud)
只有一个激光器,只有一个目标.墙必须形成任何大小的实心矩形,激光和目标放在里面."房间"内的墙壁是可能的.
激光射击并从其原点移动到它指向的方向.如果激光射到墙上,它就会停止.如果激光射到镜子上,它会反射到镜子指向的方向90度.镜子是双面的,这意味着两面都是"反光的"并且可以以两种方式反射光线.如果激光射击激光(^v><
)本身,则将其视为墙壁(激光束会破坏投影仪,因此它永远不会击中目标).
Input: ########## # / \ # # # # \ x# # > / # ########## Output: true Input: ########## # …
由字符最短代码计数显示半径的圆的表示R
使用*
字符,接着π的近似值.
输入是一个数字,R
.
由于大多数计算机似乎具有几乎2:1的比率,因此您应该只输出y
奇数的行.这意味着当R
奇数时你应该打印R-1
线条.有一个新的测试用例R=13
需要澄清.
例如.
Input
5
Output Correct Incorrect
3 ******* 4 *******
1 ********* 2 *********
-1 ********* 0 ***********
-3 ******* -2 *********
2.56 -4 *******
3.44
Run Code Online (Sandbox Code Playgroud)
编辑:由于奇数值引起的广泛混淆R
,任何通过下面给出的4个测试用例的解决方案都将被接受
π的近似值是将*
字符数除以两倍得到的R²
.
近似值应至少为6位有效数字.
前导或尾随零是允许的,因此,例如任何的3
,3.000000
,003
被接受为输入2
和4
.
代码计数包括输入/输出(即完整程序).
Input
2
Output
***
***
3.0
Input
4
Output
***** …
Run Code Online (Sandbox Code Playgroud) 按字符计数的最短代码从给定长度的输入音符开始输出钢琴键盘的一部分.
输入将由一个音符([ACDFG]#|[A-G]
)组成,用于开始打印键盘,一个正数表示要打印的键的长度,包括第一个音符.
第一个键应该完整打印 - 如果它有一个左锐键,它将被剪切,相同的开始键是锋利的,左键也将被剪切.
不计算夏普键,只计算白键.
Input
C 14
Output
| ### ### | ### ### ### | ### ### | ### ### ### |
| ### ### | ### ### ### | ### ### | ### ### ### |
| ### ### | ### ### ### | ### ### | ### ### ### |
| ### ### | ### ### ### | ### ### | ### ### ### |
| ### ### | ### ### …
Run Code Online (Sandbox Code Playgroud) 我在高中时听到的一个小谜题是这样的......
目标是试图找出转换功能,然后能够自己可靠地监督这个难题.
任何步骤的转换功能都是
对于我曾经考虑过的所有数字,这会收敛到4.由于"四"也有四个字母,所以这里会有一个无限循环; 相反,它仅仅被称为魔术以结束序列.
您的挑战是创建一段代码,该代码将从用户读取数字,然后打印显示重复应用的转换函数的行,直到达到"四是魔术".
特别:
a is b.
其中a和b是转换中数字的数字形式.4 is magic.
.例子:
> 4
4 is magic.
> 12
12 is 6.
6 is 3.
3 is 5.
5 is 4.
4 is magic.
> 42
42 is 8.
8 is 5.
5 is 4.
4 is magic.
> 0 …
Run Code Online (Sandbox Code Playgroud) 灵感来自http://xkcd.com/710/这里是一个高尔夫代码.
挑战
给定大于0的正整数,打印出该数字的冰雹序列.
冰雹序列
有关更多详细信息,请参阅Wikipedia
用生成的数字重复此操作,直到达到1.(如果在1之后继续,它将进入无限循环1 -> 4 -> 2 -> 1...
)
有时代码是最好的解释方式,所以这里有一些来自维基百科
function collatz(n)
show n
if n > 1
if n is odd
call collatz(3n + 1)
else
call collatz(n / 2)
Run Code Online (Sandbox Code Playgroud)
这段代码有效,但我正在增加额外的挑战.程序不能容易受到堆栈溢出的影响.所以它必须使用迭代或尾递归.
此外,如果它可以计算大数字并且语言尚未实现,则奖励积分.(或者如果使用固定长度的整数重新实现大数字支持)
测试用例
Number: 21
Results: 21 -> 64 -> 32 -> 16 -> 8 -> 4 -> 2 -> 1
Number: 3
Results: 3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 …
Run Code Online (Sandbox Code Playgroud) 考虑以下tetrominoes和空洞的比赛场地:
0123456789 I O Z T L S J [ ] [ ] # ## ## ### # ## # [ ] # ## ## # # ## # [ ] # ## ## [ ] # [ ] [==========]
比赛场地的尺寸是固定的.顶部的数字仅用于表示列号(也可参见输入).
1.您将获得一个特定的游戏区域(基于上述内容),该区域已经部分填充了四联蛋白(这可以在单独的文件中或通过标准输入提供).
样本输入:
[ ] [ ] [ ] [ ] [ # # #] [ ## ######] [==========]
2.您将获得一个字符串,该字符串描述(以空格分隔)哪个tetromino插入(和下拉)哪一列.Tetrominoes不需要旋转.输入可以从stdin读取.
样本输入:
T2 Z6 I0 T7
Run Code Online (Sandbox Code Playgroud)
您可以假设输入是"格式良好的"(或者当它不是时会产生未定义的行为).
渲染结果字段("完整"行必须消失)并打印分数计数(每个丢弃的行占10个点).
基于上面的示例输入的示例输出:
[ ] [ ] [ ] [# …
挑战:编写实现John H. Conway的Game of Life元胞子自动机的最短程序.[ 链接 ]
编辑:经过大约一周的比赛,我选择了一个胜利者:pdehaan,用perl 打算用一个角色击败Matlab解决方案.
对于那些没有听过生命游戏的人来说,你需要一个方格单元格(理想情况下是无限的).细胞可以存活(填充)或死亡(空).我们通过应用以下规则确定下一步中哪些细胞存活:
您的程序将读入指定为命令行参数的40x80字符ASCII文本文件,以及要执行的迭代次数(N).最后,它将在N次迭代后输出到ASCII文件out.txt系统的状态.
以下是运行相关文件的示例:
in.txt:
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
..................................XX............................................
..................................X.............................................
.......................................X........................................
................................XXXXXX.X........................................
................................X...............................................
.................................XX.XX...XX.....................................
..................................X.X....X.X....................................
..................................X.X......X....................................
...................................X.......XX...................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
Run Code Online (Sandbox Code Playgroud)
迭代100次:
Q:\>life in.txt 100
Run Code Online (Sandbox Code Playgroud)
结果输出(out.txt)
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................ …
Run Code Online (Sandbox Code Playgroud) language-agnostic code-golf conways-game-of-life rosetta-stone
按字符数最短的代码,根据用户输入输出玩砖塔系列.
输入将是一系列数字(正数,负数和零),表示当前立方体塔在其索引之后的高度.高度为0表示没有塔并且间隔开.
立方体塔由堆积的立方体组成.如果当前索引上的输入数字为正,则立方体会上升,如果输入数字为负数,则立方体会下降.使用以下4行绘制单个立方体:
__ /__ /| | | | |___|/
立方体是3D - 这意味着当两个塔彼此相邻放置时它们彼此隐藏,产生假视角.
可以假设所有输入都是有效且没有错误 - 每个数字在一行上用空格分隔,至少有一个数字.
Input: 2 -3 -2 1 2 -1 Output: __ __ /__ /| /__ /| | | | _| | | |___|/| /__|___|/| | | |__ _| | | |__ |___|/__ /__|___|___|/__ /| | | | | | | | |___|___|/| |___|/ | | | | |___|___|/ | | | |___|/
Input: 1 2 3 4 -2 4 3 2 1 Output: __ …
按字符排序的最短代码,用于从输入中识别和标记土地的ASCII表示中的水凹陷.
输入将是景观的ASCII表示,具有丘陵,山谷和平坦的土地.该程序应模拟景观如果被淹没将会是什么样子 - 用水填充所有山谷(角色x
).
景观将始终以角色开始和停止,_
并且至少2个字符长,输入最短__
.
山被定义为加高,不应该用水填充:
__
_/ \_
Run Code Online (Sandbox Code Playgroud)
山谷被定义为凹陷,将被水填满,直到遇到平地:
_ _
\__/
Run Code Online (Sandbox Code Playgroud)
可以假定输入是干净的,并且仅由字符space(), newline (
\n
),下划线(_
)以及前向和后向斜杠(/
和\
)组成.输入可以看作是一条连续线,以及包含模糊线输入的任何输入,如_/_
或
_ _
\_/
/ \
Run Code Online (Sandbox Code Playgroud)
被认为无效.
关于水下洞穴,如果洞穴水位高于水位,则应保持水位.
Input:
__/\__
\__
\ ___ ___________
/ / \_ \_
\_____/ \__ _/
\/
Output:
__/\__
\__
\ ___ ___________
/xxxxxx/ \xxxxxx\_
\xxxxx/ \xxxxx/
\/
Run Code Online (Sandbox Code Playgroud)
Input:
__ ___
/ \_____/
/ _______
________ / \ /
_____/ \ …
Run Code Online (Sandbox Code Playgroud) 今天的Code Golf挑战是尽可能少地创建一个正则表达式解析器.
不,我不是要求你匹配Perl风格的正则表达式.毕竟,对于那些人来说,已经有一个非常可靠的翻译!:-)
以下是您需要了解的有关此挑战的正则表达式语法的所有信息:
()
.*
(星号)字符表示Kleene星操作在上一届.这意味着前一个词的零个或多个连接在一起.+
(加)字符表示一个方便快捷方式:a+
相当于aa*
,这意味着一个或多个之前的术语的.?
(问号)字符代表零或前项之一.|
(管)字符代表的交替,也就是说,在任一侧上的正则表达式可以在比赛中使用.[0-9A-Za-z]
(即所有英语字母数字).或者,换一种说法:*
/ +
/ ?
具有最高的优先级,然后串联,然后交替.由于交替的优先级低于连接,因此在没有括号的正则表达式中使用它会导致它被绑定到每一侧的完整正则表达式.*
和+
和?
,在另一方面,将只适用于前一学期.
您的挑战是编写一个程序来编译或解释正则表达式(如上所定义),然后针对它测试一些字符串.
我要把输入留给你了.我的建议是,正则表达式可能应该首先出现,然后对任何数量的字符串进行测试; 但如果你想让它持久,那很好.如果你想把所有东西放在命令行参数或stdin,或命令行中的正则表达式和stdin中的字符串,或其他什么,那很好.只显示一两个用法示例.
输出应该是true
或false
每行一个,以反映正则表达式是否匹配.
笔记:
()*+?|
都不会按字面意思出现.如果输入中有一个,可以安全地假设没有模式可以匹配相关字符串.对于这些示例,我假设一切都是在命令行参数中完成的,首先是regex.(正如我上面所说,输入取决于你.)myregex
这里代表你对程序的调用.
> myregex easy easy Easy hard
true
false
false
> myregex ab*a aa …
Run Code Online (Sandbox Code Playgroud)