生成一个列表列表(或打印,我不介意)一个大小为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
The shortest code by character count to generate seven segment display representation of a given hex number.
Input is made out of digits [0-9] and hex characters in both lower and upper case [a-fA-F] only. There is no need to handle special cases.
输出将是输入的七段表示,使用这些ASCII面:
_ _ _ _ _ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_| |_| |_ | _| |_ |_
|_| …Run Code Online (Sandbox Code Playgroud) 按字符数计算的最短代码,将根据用户输入输出乐谱.
输入将由一系列字母和数字组成 - 字母将代表注释的名称,数字将代表注释的长度.注释由4个垂直列组成.音符的头部将是一个大写字O杆,如果存在的话将是3行高,由管道字符制成|,并且旗帜将由反斜线制成\.
有效音符长度为无,音符的1/4,音符的1/8,音符的1/16和音符的1/32.
| |\ |\ |\
| | |\ |\
| | | |\
O O O O O
1 1/4 1/8 1/16 1/32
Run Code Online (Sandbox Code Playgroud)
根据他们的笔记名称,笔记是工作人员的地方:
----
D ----
C
B ----
A
G ----
F
E ----
Run Code Online (Sandbox Code Playgroud)
可以假设所有输入都是有效且没有错误 - 每个音符在一行上用空格分隔,至少有一个有效音符.
Input:
B B/4 B/8 B/16 B/32 G/4 D/8 C/16 D B/16
Output:
|\
--------------------------|---|\--------
| |\ |\ |\ | |\ |\
------|---|---|\--|\-----O----|--O----|\
| | | |\ | O | …Run Code Online (Sandbox Code Playgroud) 按字符排序的最短代码输出一个蜘蛛网,其环等于用户的输入.
通过重建中心环启动蜘蛛网:
\_|_/
_/ \_
\___/
/ | \
Run Code Online (Sandbox Code Playgroud)
然后添加等于用户输入的数量的环.环是由由"蜘蛛圈"的另一个水平\ / |和_,并包装中心圆.
输入始终保证为单个正整数.
Input
1
Output
\__|__/
/\_|_/\
_/_/ \_\_
\ \___/ /
\/_|_\/
/ | \
Run Code Online (Sandbox Code Playgroud)
Input
4
Output
\_____|_____/
/\____|____/\
/ /\___|___/\ \
/ / /\__|__/\ \ \
/ / / /\_|_/\ \ \ \
_/_/_/_/_/ \_\_\_\_\_
\ \ \ \ \___/ / / / /
\ \ \ \/_|_\/ / / /
\ \ \/__|__\/ / /
\ \/___|___\/ /
\/____|____\/ …Run Code Online (Sandbox Code Playgroud) 这是一项任务,灵感来自着名的英国电视游戏节目Countdown.即使不了解游戏,挑战也应该非常明确,但随时可以要求澄清.
如果你想看到这款游戏的动态片段,请查看此YouTube视频片段.它拥有1997年美妙的已故理查德怀特利.
您将获得6个数字,从集{1,2,3,4,5,6,8,9,10,25,50,75,100}中随机选择,以及100到999之间的随机目标数.目的是使用六个给定的数字和四个常用的算术运算(加法,减法,乘法,除法;遍及有理数)来生成目标 - 或尽可能接近任一侧.每个数字最多只能使用一次,而每个算术运算符可以使用任意次数(包括零).请注意,使用多少个数并不重要.
编写一个函数,它接受目标数和6个数字的集合(可以表示为列表/集合/数组/序列),并以任何标准数字符号(例如中缀,前缀,后缀)返回解决方案.该函数必须始终将最接近的结果返回给目标,并且必须在标准PC上运行最多1分钟.请注意,在存在多个解决方案的情况下,任何单个解决方案就足够了.
例子:
{50,100,4,2,2,4},目标203,
例如100*2 + 2 +(4/4)(精确),
例如(100 + 50)*4*2 /(4 + 2)(精确)
{25,4,9,2,3,10},目标465
例如(25 + 10 - 4)*(9*2-3)(确切)
{9,8,10,5,9,7},目标241
例如((10 + 9)*9*7)+ 8)/ 5 (确切)
{3,7,6,2,1,7},目标824
例如((7*3)-1)*6-2)*7 (= 826;偏2)
除了在问题陈述中提到的,没有进一步的限制.您可以使用任何标准语言编写函数(不需要标准I/O).一如既往的目标是用最少数量的代码来解决任务.
说,我可能不会简单地用最短的代码接受答案.我还将关注代码的优雅和算法的时间复杂度!
当我找到空闲时间时,我正在尝试使用F#解决方案 - 当我有东西时会将它发布在这里!
请以下列格式发布所有答案,以便于比较:
语言
字符数:???
完全混淆的功能:
Run Code Online (Sandbox Code Playgroud)(code here)清除(理想评论)功能:
Run Code Online (Sandbox Code Playgroud)(code here)关于算法/聪明的快捷方式的任何注释.
确定性有限状态机是一种简单的计算模型,广泛用作基础CS课程中自动机理论的介绍.它是一个简单的模型,相当于正则表达式,它确定某个输入字符串是Accepted还是Rejected.抛开一些手续,有限状态机的运行包括:
一个运行在机器上开始处于起步状态.读取输入字符串的每个字母; 如果当前状态与对应于该字母的另一个状态之间存在转换,则当前状态将更改为新状态.在读取最后一个字母后,如果当前状态是接受状态,则接受输入字符串.如果最后一个状态不是接受状态,或者一个字母在运行期间没有来自状态的相应拱门,则拒绝输入字符串.
注意:这种短暂的破坏远不是FSM的完整,正式的定义; 维基百科的精彩文章是对该主题的精彩介绍.
例如,以下机器告知从左到右读取的二进制数是否具有偶数个0s:

{0,1}.(S1, 0) -> S2,(S1, 1) -> S1,(S2, 0) -> S1和(S2, 1) -> S2.使用您选择的语言实施FSM.
FSM应接受以下输入:
<States> List of state, separated by space mark.
The first state in the list is the start …Run Code Online (Sandbox Code Playgroud) 我最近在" 你更有争议的编程意见是什么 "中发布了我最喜欢的采访白板编码问题之一,即编写一个使用Leibniz公式计算Pi的函数.
它可以通过多种不同的方式进行处理,退出条件需要一些思考,所以我认为它可能会成为一个有趣的代码高尔夫问题.最短的代码获胜!
假设Pi可以使用函数4*(1 - 1/3 + 1/5 - 1/7 + ...)估算,更多项更精确,可以编写一个函数来计算Pi到0.00001以内.
编辑:2008年1月3日
正如评论中所建议的那样,我将退出条件更改为0.00001,因为这就是我的真实含义(由于四舍五入,精确度小数点后五位更难,所以我不想在面试中问这个,而在0.00001以内是更容易理解和实现退出条件).
另外,为了回答评论,我想我的意图是解决方案应该计算迭代次数,或检查它何时做得足够多,但没有什么可以阻止你预先计算迭代次数并使用该数字.我真的有兴趣问这个问题,看看人们会想出什么.
按字符数排序的最短代码,将根据用户输入生成蜂窝.
蜂窝被定义为由用户输入的大小的六边形网格,作为两个大于零的正数(不需要验证输入).第一个数字(W)代表蜂箱的宽度 - 或 - 每行有多少个六边形.第二个数字(H)表示蜂箱的高度 - 或 - 每列上有多少个六边形.
:一个六边形由三个ASCII字符制成_,/并且\,和三线:
__
/ \
\__/
Run Code Online (Sandbox Code Playgroud)
六边形相互完成:蜂巢的第一列将为"低",第二列将为高 - 交替并以相同的图案重复形成W六边形.这将重复H次以形成总共WxH六边形.
Input:
1 1
Output:
__
/ \
\__/
Run Code Online (Sandbox Code Playgroud)
Input:
4 2
Output:
__ __
__/ \__/ \
/ \__/ \__/
\__/ \__/ \
/ \__/ \__/
\__/ \__/
Run Code Online (Sandbox Code Playgroud)
Input:
2 5
Output:
__
__/ \
/ \__/
\__/ \
/ \__/
\__/ \
/ \__/
\__/ \
/ \__/
\__/ …Run Code Online (Sandbox Code Playgroud) 编写一个程序,该程序采用由空格分隔的3个整数,并执行加法,减法,乘法和除法运算的每一个组合,并使用所使用的运算组合显示结果.
例:
$./solution 1 2 3
结果如下输出
1+2+3 = 6
1-2-3 = -4
1*2*3 = 6
1/2/3 = 0 (仅整数答案,在.5处向上舍入)
1*2-3 = -1
3*1+2 = 5
等等...
操作规则的顺序适用,假设没有使用括号,即(3-1)*2 = 4不是组合,尽管你可以实现这个"额外信用"
对于除以0的结果,只需返回NaN
编辑:输入是必需的,即,如果输入是1 2 3,则3*1*2是有效组合.
我刚刚尝试创建最小的语言解释器.你想加入并尝试吗?
游戏规则:
eval(),exec()或类似的函数.这是一个社区维基,这意味着问题和答案都不会从投票中获得声誉点.但无论如何投票!