Questions tagged «geometry»

该挑战旨在通过使用,操纵或创建形状或其他几何结构来解决。

1
在圆形交叉点中查找专用区域
这是给您一个看似具有挑战性的几何难题! 给定一个圆A和n其他圆B[n],找出包含在A其中的总面积不在的任何圆之内B。 您的代码应尽可能短。 输入项 您的输入应包含以下信息: 一个浮点数,表示圆的半径A。 浮点数列表,用于表示中的圆半径B。 中的圆心列表B。您的程序可能期望中心在极坐标或笛卡尔坐标中。 (可选)您可能会收到nB中的圆圈数。此输入不是必需的。 假定圆心A是原点,即点(0, 0)。 这是保证没有两个圈子里B是相同的,但不保证:1,各界B相交A,各中心B在外面A,或没有两个圆B相交。确保您的解决方案可以处理各种边缘情况。 您可以以任何顺序接收输入,包括文本输入(通过stdin或您的语言的等效语言),函数参数或命令行参数的形式。 如果选择接收文本输入,则输入之间应有一个或两个字符的可打印ASCII分隔符。 输出量 您的程序或函数应输出一个浮点数,该数字代表A不在的任何圆圈内的总面积B。对于所有测试用例,您的答案应至少精确到三个有效数字。 通用代码高尔夫球规则适用。 您的解决方案不应依赖圆内的采样点来确定面积。 不允许使用自动定位圆的交点,在圆的交点内查找区域或立即解决此问题的内置函数。 测试用例 在每个图像中,圆圈A以蓝色勾勒出轮廓,圆圈B以绿色勾勒出黑色轮廓。应返回的区域以红色填充。 (特别感谢Rainer P.检查我的解决方案) 测试用例1: A = {x: 0, y: 0, rad: 50} B[0] = {x: 0, y: 0, rad: 100} Result: 0.00 测试案例2: A = {x: 0, y: 0, rad: …

2
打台球
在此代码高尔夫球中,您将必须确定在落入口袋中之前恰好击中n个垫子的最短击球的方向。 台球桌是具有以下特征的6口袋台球桌: 尺寸可变(a x b) 无摩擦:球将永远滚动直到落入口袋 口袋和球的大小几乎为零。这意味着仅当球具有相同的位置时,球才会落在口袋中。 球在开始时放置在左下角的孔中(但不会掉进去) 创建一个完整的程序或函数,该函数将表的尺寸(a,b)和要击中n个垫子的数量作为输入,并返回以最短路径度数精确击中n个垫子然后落入口袋的角度。 一 > 0 b > 0 0 <= n <10000000 0 < alpha <90(以度为单位)精度:至少10 ^ -6 例子 : 在a = 2,b = 1,n = 1的情况下,存在三种可能的路径:下图为(1)(2)(3)。数字(1)最短,因此输出应为atan(2)= 63.43494882292201度 对于该解决方案一个 = 2,b = 1,Ñ = 4是ATAN(4/3)= 53.13010235415598度 测试样品: a = 2, b = 1, …

2
每日最佳高尔夫#6:掷出d20
关于系列 首先,您可以像对待其他任何代码高尔夫挑战赛一样对待它,并回答它而不必担心系列赛。但是,在所有挑战中都有排行榜。您可以在第一篇文章中找到排行榜以及有关该系列的更多信息。 尽管我在本系列中有很多想法,但未来的挑战还没有定下来。如果您有任何建议,请在相关的沙箱帖子上让我知道。 第6洞:滚动d20 桌面RPG中最常见的模具是二十面模具(二十面体,通常称为d20)。掷骰子是您的任务。但是,如果您只是返回1到20之间的随机数,那将是微不足道的。因此,您的任务是为给定的模具生成一个随机的网。 我们将使用以下网络: 这是一个三角形带,因此可以很容易地将其表示为整数列表。例如,如果得到输入: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] 那将对应于以下骰子(有趣的事实:这是魔术师使用的网:聚会生命计数器/旋转骰子)。 但是,这不是唯一代表此死的网络。根据我们展开脸部的方式,有60种不同的蚊帐。这里还有两个: [1, 8, 9, 10, 2, 3, 4, 5, 6, 7, 17, 18, 19, 11, 12, 13, 14, 15, 16, 20] [10, …

14
找到参考角
这是一个相当简单的问题。根据我发现的这个随机网站-Web Archive的参考,the acute angle formed by the terminal side of the given angle and the x-axis.您必须编写一个程序来查找这些内容。 我不记得代数2的任何内容,这是什么意思? 角度通常以标准形式给出,方法是将角度的一侧放置,然后逆时针向另一侧测量,如下所示: 这将是您的输入。您的输出将为此的参考角度。您可以认为这是从终端到X轴的最小距离。除了角度,不是距离。这里有些例子: 澄清说明 输入和提交的所有默认设置。 角度以度为单位。 负角,非整数的角度和角度> 360度被允许的。 以表格形式输出60 deg。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 另一个有用的链接。 测试用例 70 -> 70 deg 135 -> 45 deg 210 -> 30 deg -60 -> 60 deg 91 -> 89 deg 610 …

3
查找字符串中的模式
在这种挑战下,您的任务是找到具有给定结构的子字符串。 输入项 您的输入应为两个非空的字母数字字符串,一个模式 p和一个text t。这个想法是,的每个字符都p代表一个连续的非空子字符串,t该子字符串彼此相邻出现,并p表示它们的串联。相同的字符对应于相同的子字符串。例如,模式aa代表任何非空正方形(通过将较短的字符串与其自身连接而获得的字符串)。因此,模式aa可以匹配子字符串byebye,并且每次a匹配bye。 输出量 如果文本t包含p匹配的子字符串,则您的输出应为该子字符串,并:在与的字符相对应的字符串之间插入冒号p。例如,如果我们有t = byebyenow和p = aa,那么bye:bye它是可接受的输出。匹配子字符串可能有多个选择,但是您只能输出其中之一。 如果t不包含匹配的子字符串,则您的输出将是悲伤的表情:(。 规则和说明 的不同字符p可以对应相同的子字符串,因此p = aba可以匹配字符串AAA。请注意,这些字符必须对应于非空字符串;特别是,如果p长于t,则输出必须为:(。 您可以编写完整的程序或函数,还可以更改两个输入的顺序。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 以格式给出pattern text -> output。注意,可能存在其他可接受的输出。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

3
多边形前缀
多边形是根据多边形的边数命名的。五边形具有5个边,八边形具有8个边。但是,它们如何命名?248面多边形的名称是什么? 所有多边形后缀为-gon。每个多边形都有特定的前缀,具体取决于边数。以下是较低数字的前缀: 3 - tri 4 - tetra 5 - penta 6 - hexa 7 - hepta 8 - octa 9 - nona 10 - deca 11 - undeca 12 - dodeca 13 - triskaideca 14 - tetradeca 15 - pentadeca 16 - hexadeca 17 - heptadeca 18 - octadeca …

10
编写一个函数,返回与(x,y)4向相邻的所有有效点的可迭代对象
通常,算法类和计算机科学中非常普遍的需求是在网格或矩阵上(例如在BFS或DFS中)对4方向进行迭代。这似乎经常导致大量笨拙和冗长的代码,并且在循环内进行了大量的算术和比较。我已经看到了许多不同的方法,但是我无法撼动这种简单的方法。 面临的挑战是编写一个纯函数,给定一个有限平面的宽度和高度,该平面n, m起源于point (0,0),并且坐标(x,y)可以表示该平面内的任何有效点,返回平面内所有点的4方向可迭代对象毗邻(x,y)。 目的是在尽可能少的字节中定义该功能。 一些示例可帮助说明有效的输入/输出: n = 5 (y-axis), m = 3 (x-axis) (zero-based) matrix = [ [A, B, C], [D, E, F], [G, H, I], [J, K, L], [M, N, O], ] (x, y) => [valid iterable points] E: (1, 1) => [(1, 0), (2, 1), (1, 2), …

13
找出多边形的质心
从维基百科: 由n个顶点(x 0,y 0),(x 1,y 1),...,(x n-1,y n-1)定义的非自相交闭合多边形的质心是点(C x,C y),其中 其中A是多边形的有符号区域, 在这些公式中,假定顶点按照沿多边形周长的出现顺序进行编号。此外,假设顶点(x n,y n)与(x 0,y 0)相同,这意味着在最后一种情况下i + 1必须循环到i = 0。请注意,如果按顺时针顺序对点进行编号,则按上述方法计算的面积A将带有负号;但是即使在这种情况下,质心坐标也将是正确的。 给定顶点列表的顺序(顺时针或逆时针),找到由顶点表示的非自相交封闭多边形的质心。 如果有帮助,您可以假定输入仅是CW或仅是CCW。如果需要,请在回答中说出这一点。 坐标不需要为整数,并且可以包含负数。 输入将始终有效,并且至少包含三个顶点。 只需要处理适合您语言的本机浮点数据类型的输入即可。 您可以假设输入数字将始终包含小数点。 您可以假设输入整数以.或结尾.0。 您可以使用复数进行输入。 输出应精确到最接近的千分之一。 例子 [(0.,0.), (1.,0.), (1.,1.), (0.,1.)] -> (0.5, 0.5) [(-15.21,0.8), (10.1,-0.3), (-0.07,23.55)] -> -1.727 8.017 [(-39.00,-55.94), (-56.08,-4.73), (-72.64,12.12), (-31.04,53.58), (-30.36,28.29), (17.96,59.17), (0.00,0.00), …

20
分解一个数字!
您的任务是使用以下格式分解数字。 这与基本转换类似,不同之处在于digits,您列出了values,而不是在基本列表中列出,这样列表就加到了输入上。 如果给定的基为n,则列表中的每个数字都必须采用的形式k*(n**m),其中0<=k<n和m在整个列表中都是唯一的。 眼镜 任何合理的输入/输出格式。您的程序/功能需要2个输入并输出一个列表。 输出列表可以是任何顺序。 0 可以排除或包含。 0允许领导。 允许内置。 测试用例 number base converted list input1 input2 output 123456 10 [100000,20000,3000,400,50,6] or [6,50,400,3000,20000,100000] 11 2 [8,2,1] or [0,0,0,0,8,0,2,1] 727 20 [400,320,7] 101 10 [100,1] or [100,0,1] 计分 这是代码高尔夫球。以字节为单位的最短解决方案获胜。
16 code-golf  number  sequence  number-theory  base-conversion  code-golf  bitwise  hashing  code-golf  string  ascii-art  whitespace  code-golf  math  code-golf  code-golf  image-processing  counting  code-golf  math  arithmetic  checksum  code-golf  code-golf  math  arithmetic  number-theory  code-golf  array-manipulation  random  code-golf  string  code-golf  math  ascii-art  base-conversion  code-golf  graphical-output  geometry  3d  code-golf  math  linear-algebra  matrix  code-golf  math  number  sequence  code-golf  array-manipulation  code-golf  math  matrix  linear-algebra  code-golf  number  sequence  counting  code-golf  string  code-golf  string  restricted-source  quine  sorting  code-golf  string  geometry  code-golf  string  code-golf  networking  code-golf  base-conversion  code-golf  math  matrix  code-golf  arithmetic  linear-algebra  matrix  code-golf  number  arithmetic  grid  code-golf  number  source-layout  code-golf  string  bitwise  checksum  code-golf  array-manipulation  code-golf  string  probability-theory  code-golf  tips  code-golf  sequence  code-golf  string  math  sequence  calculus  code-golf  string  palindrome  bioinformatics  code-golf  math  combinatorics  counting  permutations  code-golf  parsing  logic-gates  code-golf  arithmetic  number-theory  combinatorics  code-golf  math  sequence  polynomials  integer  code-golf  string  ascii-art  chess  code-golf  string  code-golf  number  code-golf  string  ascii-art  parsing  code-golf  code-golf  number  natural-language  conversion  code-golf  arithmetic  code-golf  string  code-golf  ascii-art  decision-problem 

3
掷骰子
掷骰子 因此,前一段时间我在掷骰子,想到了一个挑战。 给定具有从输入中取出的网和移动列表的多维数据集,请在末尾的底部找到正方形。 我将在此处的示例中使用此图像。 输入值 您输入一个带有动作列表的字符串。该字符串仅包含大写ASCII字母N,S,W和E。这对应于将多维数据集向该方向滚动一步。 在图片中,一个N将使底面变成6。在此图片中,North远离相机,South朝向相机,East右侧,West左侧。 您还可以采用以下格式的字符串:1P 2P 3P 4P 5P 6P,其中每个P是N,S,W,E,T和B中的一个位置。T&B是底部和顶部。 数字是带有该数字的面部,字母代表面部所在的位置。如果不清楚,网将始终按该编号排序,因此1P 2P 3P 4P 5P 6P,而不是2B 1T 3N 4S 5W 6E。 图像中的位置是1S 2B 3E 4W 5T 6N。 输出量 您的程序应输出一个代表底部的数字。 测试用例 (nothing), 1S 2B 3E 4W 5T 6N -> 2 N, 1S 2B 3E 4W 5T 6N -> …

7
打印Pentomino矩形
编写一个程序或函数,该程序或函数不输入任何内容,但打印或返回由12种不同的Penminominos组成的矩形的恒定文本描述: 矩形可以具有任意尺寸,并且在任何方向上都可以,但是所有12个戊糖都必须精确使用一次,因此其面积为60。每个不同的戊糖都必须由不同的可打印ASCII字符组成(您不必使用上面的字母)。 例如,如果您选择输出此20×3 pentomino矩形解决方案: 程序的输出可能如下所示: 00.@@@ccccF111//=--- 0...@@c))FFF1//8===- 00.ttttt)))F1/8888=- 另外,您可能会发现更容易打高尔夫球这种6×10的解决方案: 000111 203331 203431 22 444 2 46 57 666 57769! 58779! 58899! 5889!! 任何矩形解决方案都可以,您的程序只需打印一个即可。(输出中的尾随换行符就可以了。) 这个出色的网站提供了各种矩形尺寸的解决方案,值得您浏览以确保解决方案尽可能简短。这是代码高尔夫球,最短的答案以字节为单位。

3
正则字形
给定顶点数量n ≥ 3和“步长” 1 ≤ m < n/2 (指示两个连接的顶点之间的距离),输出相应规则多边形的图形表示。如果该多边形包含多个闭合回路,则每个回路必须以不同的线条颜色呈现。(如果这听起来令人困惑,那么下面的示例将有望清除这些问题。) 规则 任何合理的问题解决方案都可能会自动满足这些规则-它们只是在此处对输出的参数施加一些约束,以防止出现诸如“此黑色块完全是一个多义字,但您看不到它的原因”之类的答案。我将线宽设置为9000以上。” 您可以将多边形图呈现到文件(可以将其写入光盘或标准输出流)中,也可以将其显示在屏幕上。 您可以使用矢量或栅格图形。如果对输出进行光栅化,则图像的尺寸必须为400x400像素或更大,并且多边形的半径(从中心到每个顶点的距离)必须在边长的35%和50%之间。 多边形的纵横比必须为1(以使其顶点位于适当的圆上)-图像的画布可能为矩形。 测线图的线的粗细不得超过半径的5%(当然,粗线的粗细必须为非零)。 除了多边形图,您还可以渲染轴或框架,但只能渲染其他东西。 您可以选择任何(纯色)背景色。 对于由多个闭环组成的组合词,您必须支持至少6种视觉上不同的颜色,所有这些颜色都必须与背景不同。(只要阴影在整个光谱中充分散布,灰度就可以了。)您的代码仍必须可以运行6个以上的循环,但是对于任何其他循环,颜色都不必是可区分的(即,您也可以重用)之前循环中的颜色)。 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 例子 以下是所有输出n = 16(直到列对应,n行对应m): 点击查看大图。 作为更大的示例n,这里(n, m) = (29, 11)和(30, 12):

17
三角形面积
您面临的另一个简单挑战。 你的任务 编写一个包含输入的程序或函数,其中包含3对x坐标和y坐标,并计算在其中形成的三角形的面积。对于那些不记得如何计算的人,可以在这里找到它。 例: 1,2,4,2,3,7 # input as x1,y1,x2,y2,x3,y3 7.5 # output 在Wolfram Alpha上看到 一些注意事项: 输入将是六个以10为底的正整数。 您可以假定输入采用任何合理的格式。 这些点将始终形成有效的三角形。 您可以假定输入已经存储在诸如的变量中t。 以字节为单位的最短代码胜出! 编辑:为了避免造成任何混乱,我简化了如何处理输入而不损害任何当前代码。 请记住,您的程序/函数必须输出有效区域,因此它不能给出负数作为输出

1
将比萨切成相同的切片
在我完全阅读它之前,这就是我认为的问题。 一群有经验的高尔夫球手走进第十九叮咬比萨店,点了一个披萨。它呈不规则形状,由单位正方形组成。您的任务是帮助他们将其切成相同的切片。也就是说,切片必须具有完全相同的形状和大小。它们可以旋转,但不能翻转/镜像。例如,如果它们是俄罗斯方块,它们必须是同一种,则不能同时使用L片和J片。 输入值 在第一行中将为您提供组中的人数(总是2到10之间的整数,包括2和10),然后是矩形的矩阵,由''(空格)和'#'字符组成,代表披萨。所有“#”字符都通过其边缘连接。“#”字符的数量保证为人数的倍数。 输出量 您应该打印相同的矩阵,每个'#'字符替换为从0到n-1的数字(n是人数)。每个数字应标记一个切片。切片形状必须通过正方形边缘连接。切片编号不需要按任何特定顺序进行。如果有多种切比萨饼的方法,那么任何一种都是可以接受的。 如果无法按照要求切比萨饼,则应打印字符串“ No pizza for you!”。代替。 计分 这是代码高尔夫。您的分数将是程序中的字节数。字符将通过其UTF-8编码进行计数。最低分获胜。 例子 输入: 3 # ### #### # 输出: 0 100 1122 2 输入: 4 ### # # ### 输出: 001 2 1 233 输入: 2 # # ###### 输出: No pizza for you! 输入: 5 # #### …

1
溜槽
这是梨和钢 溜槽的五幅图像: A:B:C:D:E: 这些只是缩略图,请单击它们以查看完整尺寸! (我是用Algodoo制作的。) 此类图像始终具有以下属性: 它们始终是白色背景的400×400像素。(由于SE图像有损压缩,因此可能不是完全白色。) 它们有1至4个相同的梨,每个梨都以(几乎)任何方式旋转和定位。 他们有一个垂直的钢制斜槽,直达图像的底部。 除了滑槽的底部以外,滑槽和梨形边界框(例如边界框)永远不会触碰或超出图像边界。 梨的边界框永远不会相互重叠,也不会与斜槽重叠。 如在B,C和D中,梨可能在滑槽的倾斜部分下面。(因此,溜槽的边界框可能与梨的边界框重叠。) 溜槽可以有任何水平和垂直位置,只要有足够的空间让梨的所有包围盒自由地放置在其上即可(不会测试“几乎不适合”的情况),并且可以看到部分圆柱。 挑战 编写一个程序,获取这样的图像,并在相同的位置放置滑槽,再输出另一个400×400的图像,但是将梨重新放置,使它们都位于滑槽的上方(这样它们就可以掉入其中并被榨汁,没什么)。 输出图像的要求是: 输入图像中的所有梨都必须重新放置,以使其位于滑槽上方,漏斗左右边缘之间。(以上的边缘是不正常。) 每个梨必须保持其旋转角度。(因此,您应该剪切和粘贴梨子,而不是重新绘制它们。) 梨不得重叠或彼此接触或与滑槽接触。(但是,梨形边框可能会重叠。) 梨不能触摸或超出图像范围。 以下是这五个样本图像的有效输出示例: A:B:C:D:E: 这些只是缩略图,请单击它们以查看完整尺寸! 请注意,E的输入图像已经是有效的输出,但是在技术上不必要时重新排列梨就可以了。 细节 通过stdin /命令行/函数调用获取图像的文件名或原始图像数据。 将图像输出到具有您选择的名称的文件,或将原始图像文件数据输出到stdout或仅显示图像。 可以使用任何常见的无损图像文件格式。 可以使用图形和图像库。 到处都有一些不正确的像素(由于有损或其他原因)并不重要。如果我无法从视觉上分辨出任何错误,那么可能就可以了。 以字节为单位的最短代码获胜。Tiebreaker是票数最高的职位。

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.