缺乏现金,您已注册为世界上最大的数字甜甜圈公司The Donut Shop™建造甜甜圈,主要是因为它们出售各种可以想象到的甜甜圈。
现在,鉴于当今的交易标准非常严格,您需要编写尽可能短的代码来创建这些甜甜圈,以便将创建它们的源代码放在数据包的外部。
挑战
在给定4个输入的情况下,外圈的半径,内圈的半径,可能的洒落以及单元格出现洒落的机会,输出覆盖在这些洒落中的甜甜圈,该甜甜圈具有正确的内半径和外半径。
- 输入可以按照您希望的方式(函数的自变量,stdin,程序自变量)以任意顺序获取。
- 每种类型的洒水将以1个字符的形式给出
^+*-
如洒输入将是4个洒列表,^
,+
,*
,-
- 洒的可能性将被输入为0和1之间例如浮点值:
0.1
,0.23
- 您必须将输出打印到标准输出或等效输出。
- 洒在甜甜圈的边缘不能。
- 每种类型的洒水都必须有同等的机会出现在每个单元格上。
- 半径以1单元为单位给出。
- 如果内半径等于0或外半径,则表示甜甜圈没有环。
- 两个半径都是非负整数。
- 甜甜圈的内边缘和外边缘必须使用哈希(
#
)表示 给定半径和圆心是一个点是否在圆中的测试:
(x-center)**2+(y-center)**2 < radius**2
输入与输出示例
(外半径,内半径,洒水,洒水几率)
10,4,“ ^ + *-”,0.1
######### # # ## ++ * *## # # # ^^ - * # # ##### ^ # #+ # # # # # #- # # # # * # # # #+ # # # # # #^ +# # # # # # # # * ##### # # + - # # ^ # ## ^ + ## # ^ # #########
5,2,“:^ + *”,0.9
##### #^^+ ^# #**### # #:# #^# #^# #*# #:# #*# #:+###* # # *:^:# #####
这是代码高尔夫,以字节为单位的最短答案
如果有均匀的火花分布,或者不均匀的分布也可以。
—
Kishan Kumar
洒水应该均匀分布。
—
蓝色
从规格上我不清楚,哪个位置对应于圆的边界。
—
丹尼斯
@Dennis我不想更改它并取消唯一答案的资格(这也是一个不错的答案),但我的意思是使边界成为圆与非圆相交的地方(点在圆中,但并非所有邻居都在)
—
Blue
你的榜样输出几乎使其无效已经,因为形状的
—
丹尼斯
10, 4
和5, 2
是相当不同的。我打算对答案发表评论,但我意识到我并没有真正理解除示例中的任何尺寸外输出的外观。如果您想改变您的原始想法,使其与答案的输出相匹配,这取决于您,但是挑战应该明确定义如何绘制边界。