Questions tagged «geometry»

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

4
计算绕组数
的绕组数是净逆时针转观察者必须作出遵循给定闭合路径的整数。请注意,任何顺时针旋转都会对绕组数计数为负。路径允许自相交。 下面给出了一些示例(从Wikipedia中无耻地摘录): 您的目标是计算给定路径的绕组数。 输入值 假定观察者在原点(0,0)。 输入是来自任何所需输入源的有限点序列(整数对类似),描述了分段线性路径。如果需要,可以将其展平为一维整数序列,也可以使输入模糊不清,以在所有y坐标之前取所有x坐标,反之亦然。您也可以将输入作为复数a+b i。路径可能会自相交,并且可能包含零长度段。第一点是路径的起点,假定位于正x轴上的某处。 路径的任何部分都不会与原点相交。路径将始终是封闭的(即,第一个和丢失的点是相同的)。您的代码可能暗示最后一点,也可能要求将其包括在内。 例如,根据您的喜好,两个输入都指定相同的正方形: 隐含终点 1,0 1,1 -1,1 -1,-1 1,-1 明确的终点 1,0 1,1 -1,1 -1,-1 1,-1 1,0 输出量 输出是绕组号的单个整数。这可以指向任何源(返回值,stdout,文件等)。 例子 所有示例都明确定义了端点,并以x,y对的形式给出。顺便说一句,假设隐式定义的端点,您也应该能够将这些示例直接输入任何代码中,并且输出应该相同。 1.基础测试 1,0 1,1 -1,1 -1,-1 1,-1 1,0 输出量 1 2.重复点测试 1,0 1,0 1,1 1,1 -1,1 -1,1 -1,-1 -1,-1 1,-1 1,-1 1,0 输出量 1 3.顺时针测试 …

3
标记基于堆栈的语言
我一直在研究另一种称为Stackgoat的基于堆栈的高尔夫语言。在这个挑战中,您将为Stackgoat(或实际上是任何通用的基于堆栈的语言)编写Tokenizer。 例子 "PPCG"23+ ["PPCG", '23', '+'] 'a "bc" + ['"a"', '"bc"', '+'] 12 34+-"abc\"de'fg\\" ['12', '34', '+', '-', '"abc\"de'fg\\"'] "foo ['"foo"'] (empty input) [] ' "" ['" "', '""'] 规格 您需要处理的三种类型是: 弦乐,什么内"" 数字,任何数字序列 运算符,除空格外的任何其他单个字符 除非将其留在字符串中或将两个数字分隔开,否则实际上将忽略空格。 字符串/字符规范: 字符串以分隔",当\遇到时,下一个字符应转义。 字符前面加a ',后面的字符'应转换为字符串文字。'a->"a" ' 后面总会有一个角色 右引号应自动插入 规则: 没有形式eval允许 输入输出: 可以通过STDIN,函数参数或您的语言等效输入。 输出应为数组或您的语言最接近的等效数组。
15 code-golf  parsing  code-golf  hexagonal-grid  code-golf  string  code-golf  string  code-golf  combinatorics  code-golf  ascii-art  code-golf  string  game  counting  code-golf  arithmetic  complex-numbers  code-golf  string  code-golf  decision-problem  hexagonal-grid  code-golf  string  sequence  code-golf  number  arithmetic  code-golf  ascii-art  code-golf  ascii-art  code-golf  string  arithmetic  code-golf  number  simulation  code-golf  number  arithmetic  code-golf  string  sequence  unicode  code-golf  string  ascii-art  balanced-string  code-golf  number  clock  code-golf  ascii-art  number  code-golf  math  number  sequence  code-golf  string  ascii-art  balanced-string  code-golf  math  string  popularity-contest  graphical-output  image-processing  code-golf  string  permutations  code-golf  string  code-golf  random  code-golf  string  cryptography  palindrome  code-golf  chess  code-golf  math  array-manipulation  topology  code-golf  math  sequence  code-golf  keyboard  classification  code-golf  string  sequence  code-golf  natural-language  code-golf  math  number  sequence  sorting  code-golf  sequence  combinatorics  grid  tic-tac-toe  code-golf  geometry  code-golf  number  restricted-source  new-years  expression-building 

2
球面多余的三角形
球面多余的三角形 众所周知,任何平面三角形的角度之和等于180度。 但是,对于球形三角形,角度之和始终大于 180度。球面三角角之和与180度之间的差称为球面过剩。任务是计算具有给定顶点坐标的三角形的球面超出量。 一些背景 球形三角形是球的三个大圆所定义的球的一部分。 球面三角形的两边和角度都是用角度测量来测量的,因为每一边都可以看作是球体与某个顶角位于球体中心的平面的交集: 每三个不同的大圆定义8个三角形,但我们只需要适当的三角形考虑在内,即。角度和侧面尺寸满足的三角形 根据地理坐标系定义三角形的顶点很方便。在给定端圆的经度λ和纬度Φ的情况下,要计算圆弧的长度,我们可以使用以下公式: ,在哪里 或更明确地: (来源:https : //en.wikipedia.org/wiki/Haversine_formula) 可用于求解球形三角形的两个基本公式是: 余弦定律: 罪法: (来源:https : //en.wikipedia.org/wiki/Spherical_trigonometry#Cosine_rules_and_sine_rules) 给定三个边,使用余弦规则很容易计算角度: 最后,定义一个三角形的球面多余部分: 三角形的球面过盈量与其面积之间的关系有趣的是: 因此,在单位球面上,三角形的多余部分等于该三角形的面积! 任务 编写一个函数或程序,在给定三角形顶点坐标的情况下,以度为单位计算三角形的球面超出量。顶点坐标是根据地理坐标系提供的。 每个顶点都应以形式传递[latitude in degrees][N|S][longitude in degrees][E|W]。当纬度为90时,可以跳过经度和E或。,,,是正确的顶点描述,同时或不是。W 90N90S10N100E30S20W80N55S 在测试案例中,纬度和经度始终是整数。 误差小于1度的答案将被接受(如下例所示)。因此,可以根据实际情况将结果呈现为实数或整数。 例子 输入值 90N0E 0N0E 0N90E 输出量 89.999989 输入值 90N 0N0E 0N90E 输出量 89.999989 输入值 0N0E 0N179E …

5
找到最近的钟针
挑战 给定午夜之后几秒钟的时间,请输出时钟表盘上任何两只指针之间的最小角度,并使用尽可能少的字节。 您可以假设秒数始终小于86400。角度可以用度或弧度表示。 参考解决方案位于:http : //ideone.com/eVdgC0 测试用例(以度为单位的结果) 0 -> 0 60 -> 0.5 600 -> 5 3600 -> 0 5400 -> 45 6930 -> 84.75 50000 -> 63.333 澄清说明 时钟有3针:时,分和秒。 所有指针都连续移动,因此可以在表盘的刻度之间找到时针和分针。

8
整数三角形和整数中位数
考虑一个三角形ABC,其中每边的长度均为整数(整数三角形)。限定一个中位的ABC是从一个顶点到相对的边的中点的线段。在下图中,红线段代表中位数。请注意,任何给定的三角形都有三个中值。 令n为某个正整数。多少个边长小于或等于n的非退化整数三角形至少有一个整数中位数? 挑战 编写一个程序,以计算给定最大边长n时具有至少一个整数中位数的整数三角形的数量。边长的顺序无关紧要,即<6,6,5>表示与<5,6,6>相同的三角形,并且应仅计数一次。排除退化的三角形,例如<1,2,3>。 计分 您的程序可以在您的机器上在60秒内为您的程序生成最大三角形数的n。得分最高的程序将获胜。我的机器是Sony Vaio SVF14A16CLB,Intel Core i5、8GB RAM。 例子 令T(N)为输入N的程序。 T(1) = 0 T(6) = 1 T(20) = 27 T(22) = 34 请注意,T(1)= T(2)= T(3)= T(4)= T(5)= 0,因为没有积分边的组合会产生积分中位数。但是,一旦达到6,我们可以看到三角形<5,5,6>的中位数之一为4,因此T(6)= 1。 还要注意,T(22)是出现重复计数的第一个值:三角形<16,18,22>的中位数为13和17(以及2sqrt(85))。 计算中位数 三角形的中位数可以通过以下公式计算: Current top score: Sp3000 - 7000 points - C

17
代码高尔夫:圆内的晶格点
下图显示了该问题: 编写一个函数,给定一个整数作为圆半径,该函数计算中心圆(包括边界)内的晶格点数。 该图显示: f[1] = 5 (blue points) f[2] = 13 (blue + red points) 用于检查/调试的其他值: f[3] = 29 f[10] = 317 f[1000] = 3,141,549 f[2000] = 12,566,345 应该有合理的表现。假设f [1000]不到一分钟。 最短的代码获胜。通常使用Code-Golf规则。 请以f [1001]的计算和时序为例。

16
具有自定义标签的二面体D4组组成
二面体组D4D4D_4是正方形的对称组,即通过旋转和反射将正方形变换为自身的移动。它由8个元素组成:旋转0、90、180和270度,以及在水平,垂直和两个对角线上的反射。 图片全部来自Larry Riddle的可爱页面。 挑战在于如何构成这些动作:给定两个动作,输出的动作等同于一个接一个地执行它们。例如,先执行第7步再执行第4步,与执行第5步相同。 请注意,将顺序切换为移动4然后移动7将产生移动6。 结果列于下表;这是D 4组的Cayley表。因此,例如,输入端7 ,4应该产生输出5。D4D4D_47,47,47, 4555 1234567812345678123456782341786534126587412387565867134267583124758624138675423112345678123456781234567823418756341265874123786557681324685731427685421385762431\begin{array}{*{20}{c}} {} & {\begin{array}{*{20}{c}} 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 \\ \end{array} } \\ {\begin{array}{*{20}{c}} 1 \\ 2 \\ 3 \\ 4 \\ 5 \\ 6 \\ 7 \\ 8 \\ \end{array} …

10
周边环圈包围的区域
给定其周长环为90度转弯的序列,找到单位晶胞区域的面积。 例如,以三格区域为例 XX X 我们画出谁的周长环 L<S<L v ^ S R>L v ^ L>L 每转标记为左(L),直(S)或右(R)。从R开始,转弯为RLLSLSLL。因此,给定输入RLLSLSLL,我们应该为该区域输出3。 确保输入序列能找出一个循环,该循环将左侧的单个区域包围起来。 路径在起点处开始,面向初始方向,形成一个循环。 循环不会交叉或接触自身。 循环围绕一个区域逆时针旋转。 输入输出 您可以将输入作为一个列表或字符串LSR,或者作为-1, 0, 1左,直,右的数字。输出是一个正整数。漂浮物还可以。 测试用例 输入以两种格式给出,后面分别是它们的输出。 RLLSLSLL LLLL SLLSLL LSRRSLLSSLSSLSSL SSSSSLSSSSSLSSSSSLSSSSSL [1, -1, -1, 0, -1, 0, -1, -1] [-1, -1, -1, -1] [0, -1, -1, 0, -1, -1] [-1, 0, 1, …

6
你愿意做我的织女吗?
我最近一直在玩' The Weaver ',我认为这对代码高尔夫提出了一个有趣的挑战。 前提: 韦弗(Weaver)游戏是一种游戏,其中给您提供了多个丝带,它们分别来自两个方向,彼此成90度角,并且您的目标是在某些交叉点交换它们以实现所需的输出。 像这样:这是一个交换:这不是: 输入: 3个数组: 顶部色带(从左到右) 左色带(从上到下) 要交换的相交点的坐标 输出: 2个数组: 底部色带(从左到右) 右色带(从上到下) 例子: 我将上面的图片用作第一个示例: 输入: [r, y, b], [r, y, b], [(0, 1), (2, 1), (2, 2)] 怎么了: r y b r y b r r r r•y y y y r r b y y …

12
圆交集区
说明: 给定x和y两个圆的位置radii,输出两个圆的相交面积。 输入: 您将获得以下输入: array 1 = x and y positions of circle a array 2 = x and y positions of circle b radius = radii of the two congruent circles 输入法 : ([12 , 20] , [20 , 18] , 12) ---> two array and number ([12 , …

8
求和顶点连接
比方说,你有一个正整数ñ。首先,建立一个具有N个顶点的规则多边形,相邻顶点之间的距离为1。然后将每个顶点之间的线连接到另一个顶点。最后,计算所有行的总和。 例 给定输入N = 6,用连接每个顶点和其他顶点的线构建一个六边形。 如您所见,总共有6条边界线(长度= 1),3条边界长度加倍(长度= 2)的线和其他6条线,我们可以使用毕达哥拉斯定理来计算,这是 如果将线的长度相加,我们将得到(6 * 1)+(3 * 2)+(6 * 1.732)= 22.392。 附加信息 由于不将具有2个或更少顶点的结构视为多边形,因此NaN对于N = 1,输出0(或,因为单个顶点之间的距离没有多大意义),因为单个顶点无法连接到其他顶点,而对于1,则输出1 N = 2,因为两个顶点通过一条直线连接。 输入值 任何合理格式的整数N。 输出量 所有行的长度加总起来,至少精确到小数点后三位,可以作为函数返回值或直接打印到stdout。 规则 禁止出现标准漏洞。 这是code-golf,因此以任何语言表示的最短代码(以字节为单位)将获胜。 祝好运! 测试用例 (Input) -> (Output) 1 -> 0 or NaN 2 -> 1 3 -> 3 5 -> 13.091 6 …

14
递归级联[N]的累积和与M次迭代
取两个正整数N,M并[N]通过M迭代创建的串联累积和。输出最后一次迭代的结果。 串联累积和的定义: 以数字开头N并定义顺序X = [N] 追加到X的累积和X 重复步骤2 M次。 向量的累加和X = [x1, x2, x3, x4]为:[x1, x1+x2, x1+x2+x3, x1+x2+x3+x4]。 N = 1和的示例M = 4: P =累积和函数。 M = 0: [1] M = 1: [1, 1] - X = [1, P(1)] = [[1], [1]] M = 2: [1, 1, 1, 2] - X …
14 code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

2
就像路径段;第一次感动
给定2个或更多2D笛卡尔点的有序列表,如果路径接触自身或自相交,则输出真实值;否则,如果它不接触自身或不自相交,则输出虚假值。 您可以假定列表中的连续点是不同的。 例子: (0,0), (1,0) -> falsey (0,0), (1,0), (0,0) -> truthy (0,0), (1,0), (1,1), (0,0) -> truthy (0,0), (2,0), (1,1), (1,-1) -> truthy (0,0), (10,0), (0,1), (10,1), (0,2), (10,2) -> falsey 请注意,我在此处给出的所有坐标都是整数。您可以支持{整数,小数,有理数,浮点数,...}之外的任意坐标输入。但是您的实现计算必须为给定的任何输入给出正确的答案。

3
绘制ASCII长方体
给定三个> = 2的整数,在正交(柜)投影中创建一个ASCII立方体。这三个整数表示包括边角的高度,宽度和深度(以可见字符为单位)。拐角应为“ o”或“ +”,自由选择。 w:10,h:5,d:4因此,得出: o--------o / /| / / | o--------o | | | o | | / | |/ o--------o 现在,要使其稍微难一点,所有的面孔都可以是坚固的,透明的或缺失的。我们像这样订购面孔: o--------o / /| / 2 / | o--------o 3| | | o | 1 | / | |/ o--------o --- |2| ------- |5|1|3| ------- |4| --- …

5
确定乔木满意的点集
一个arborally满意点集是2D点集,使得对于可在所述一组作为相对的角通过两个点来形成,该矩形包含或触摸至少一个其它点的任何轴对齐矩形。这是维基百科的等效定义: 如果具有以下属性,则可以说是满足点集要求的点:对于不都位于同一条水平线或垂直线上的任何一对点,都存在第三个点,该点位于前两个点所跨的矩形中(在边界内或边界上)。 下图说明了矩形的形成方式。不能任意满足此点集,因为此矩形还需要再包含至少一个点。 在ASCII技术中,此点集可以表示为: ...... ....O. ...... .O.... ...... 稍作修改就可以使它满足: ...... ....O. ...... .O..O. ...... 在上方,您可以看到所有矩形(其中只有一个)至少包含三个点。 这是乔木满足的更复杂点集的另一个示例: 对于可以跨越两个点绘制的任何矩形,该矩形至少包含一个其他点。 挑战 给定的点的矩形网格(其余与代表O)和空的空间(我所代表与.),输出一个truthy值,如果它是arborally满足,或falsey值,如果它不是。这是代码高尔夫球。 附加规则: 您可以选择使用这些字符,O并.与任何其他可打印的ASCII字符对互换。只需指定程序使用哪个字符映射即可。 网格将始终为矩形。尾随换行符是允许的。 更多例子 乔装满意: .OOO. OO... .O.OO .O..O ....O ..O.. OOOO. ...O. .O.O. ...OO O.O. ..O. OOOO .O.O OO.. ... ... ... ... ..O ... O..... O.O..O .....O OOO.OO …

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.