Questions tagged «geometry»

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

1
钓鱼立方网
立方体可以由六个正方形作为侧面。但是您也可以将三个2x1矩形对折,然后将它们粘合在一起以形成一个立方体。现在,在此挑战中,您将获得一组由正方形组成的零件,并且您必须确定是否可以选择零件来形成单位立方体。并非所有部件都必须使用,可能还剩下一些。 细节 这些片段以两个不同字符的字符串或黑白图像或任何方便的2D栅格格式给出。在下面的示例中,我假设形成碎片的像素为黑色,背景为白色。 共有一侧的两个像素被视为属于同一块。这些片段只能沿着分隔像素的网格线折叠,并且无法剪切。立方体的每一侧都有一个像素的大小,立方体的每一侧只能由一层构成。 输出必须为真或假值。 测试用例 在下面,空格是背景,哈希符号#代表片段。 (还有待添加) 有效 ## ## ## # #### # # # # # # # # # ## ## # 无效 ### ### # # #### ### ## #### 运行以下代码片段以获取更多测试用例。 显示代码段 document.getElementById("asdfasdf").style.display = "block"; <div id="asdfasdf" display="none"> <h3>Valid</h3> <pre><code> ## ## ## </code></pre> <hr> …

26
数字总和斐波那契
我们都熟悉斐波那契数列: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765 但是,相反,f(n) = f(n-1) + f(n-2)我们将对前2个条目进行数字求和。 序列应仍以开头0, 1,之后差异会迅速显现。此列表的索引为0,也可以使用索引为1的状态。 f(0) = 0 f(1) = 1 f(2) = 1 # 0 + 1 f(3) = 2 # 1 + 1 f(4) …

30
ASCII三角形
您的任务是编写一个打印ASCII三角形的程序或函数。他们看起来像这样: |\ | \ | \ ---- 您的程序将采用单个数字输入n,并带有约束0 <= n <= 1000。上面的三角形的值为n=3。 ASCII三角形将具有n反斜杠(\)和竖线(|),n+1线和破折号(-),并且每行除最终行外还将具有等于行号(从0开始,即第一行为行0)的空格。 。 例子: 输入: 4 输出: |\ | \ | \ | \ ----- 输入: 0 输出: 在此测试用例中,输出必须为空。没有空格。 输入: 1 输出: |\ -- 输入和输出必须完全是我指定的方式。 这是代码高尔夫球,因此请争取尽可能短的代码!
30 code-golf  ascii-art  code-golf  rubiks-cube  code-golf  path-finding  maze  regular-expression  code-golf  math  rational-numbers  code-golf  kolmogorov-complexity  graphical-output  code-golf  tips  code-golf  string  permutations  code-golf  sorting  base-conversion  binary  code-golf  tips  basic  code-golf  number  number-theory  fibonacci  code-golf  date  code-golf  restricted-source  quine  file-system  code-golf  code-golf  math  code-golf  ascii-art  code-golf  math  primes  code-golf  code-golf  math  matrix  code-golf  string  math  logic  factorial  code-golf  palindrome  code-golf  quine  stateful  code-golf  interactive  code-golf  board-game  code-golf  math  arithmetic  code-golf  string  code-golf  math  matrix  code-golf  math  abstract-algebra  polynomials  code-golf  date  code-golf  string  array-manipulation  sorting  code-golf  game  code-golf  string  code-golf  ascii-art  decision-problem  code-golf  number  sequence  code-golf  code-golf  code-golf  sequence  fibonacci  code-golf  math  geometry  random  code-golf  code-golf  math  decision-problem  fractal  rational-numbers  code-golf  number  number-theory  code-golf  combinatorics  permutations  card-games  code-golf  math  sequence  array-manipulation  fibonacci  code-golf  sequence  decision-problem  graph-theory  code-golf  ascii-art  parsing  lisp  code-golf  string  math  natural-language  logic  code-golf  math  logic  code-golf  string  alphabet  code-golf  string  code-golf  string 

8
甲壳虫的歌曲和六边形
编写两个三角形(即金字塔)形状的程序。 第一个应该是一个向上的文字三角形,其最小底边宽度为三个字符。所以它的结构像 X XXX 要么 X XXX XXXXX 要么 X XXX XXXXX XXXXXXX 或更大。每个都X将替换为实际代码中的字符,除了行终止符外,其他任何字符都可以(因此X可以为空格)。X必须将所有的都替换掉,并且需要保留有助于形成三角形的空格和换行符。 第二个程序必须具有与第一个程序相同的大小和形状,除了三角形将指向下方。 因此,如果您的第一个程序看起来像 X XXX XXXXX 然后你的第二个程序看起来像 yyyyy yyy y 每个y字符都是您需要在实际代码中填充的字符(可能与您的X代码不同)。空格和换行符在这里也必须保持不变。 您的任务是编写这些程序,以使它们各自输出(以stdout或最接近的替代音)甲壳虫乐队独特歌曲的标题,而不输入任何内容。这篇Wikipedia文章将作为我们披头士乐队的正式歌曲清单。输出应该是所列标题之一,例如I Want You (She's So Heavy)。 但是,即使有奇怪的三角形程序要求,这也很容易。因此,我们将从前两个程序组成另一个程序,该程序必须输出另一个歌曲名称。 通过组合两个三角形程序中每个程序的三个副本,我们可以创建形状像六边形的第三个程序。 如果您的第一个程序的基本宽度为3,则它将如下所示: XyyyX XXXyXXX yyyXyyy yXXXy 如果基本宽度为5,则它将如下所示: XyyyyyX XXXyyyXXX XXXXXyXXXXX yyyyyXyyyyy yyyXXXyyy yXXXXXy 该程序(与其他空格和换行符一起运行时)必须输出另一个甲壳虫乐队的歌曲标题,就像前两个程序一样。也: 您的三个程序必须输出不同的歌曲标题。 歌曲标题长度不得超过8个字符。 您只能选择之一Revolution,Revolution 1并且Revolution 9因为标题是如此相似。 …

7
高尔夫最小的一圈!
问题: 给定笛卡尔平面中的一组非空点,请找到将它们全部包围的最小圆(Wikipedia链接)。 如果点的数量为三个或更少(如果有一个点,则圆的半径为零;如果有两个点,则连接点的线段为圆的直径;如果有),则此问题微不足道。 3个(非共线的)点,如果它们形成一个非钝角三角形,则可以得到一个全部接触它们的圆的方程;如果该三角形是钝角,则可以得到仅接触两个点并包含第三个点的圆的方程)。因此,为了应对这一挑战,积分的数量应大于三。 挑战: 输入: 4个或更多非共线点的列表。这些点应具有X和Y坐标;坐标可以是浮点数。为了缓解挑战,任何两个点都不应共享相同的X坐标。 例如:[(0,0), (2,1), (5,3), (-1,-1)] 输出:值的元组(h,k,r),使得(x−h)2+(y−k)2=r2(x−h)2+(y−k)2=r2(x-h)^2 + (y-k)^2 = r^2是包围所有点的最小圆的方程。 规则: 您可以选择适合您程序的任何输入法。 输出应打印到STDOUT函数或由函数返回。 首选“普通”,通用语言,但任何esolang都是可以接受的。 您可以假定这些点不是共线的。 这是代码高尔夫球,因此以字节为单位的最小程序为准。挑战赛发布一周后将选出优胜者。 请在回答的第一行中包括您使用的语言和以字节为单位的长度作为标题: # Language: n bytes 测试用例: 1: 输入: [(-8,0), (3,1), (-6.2,-8), (3,9.5)] 输出: [-1.6, 0.75, 9.89] 2: 输入: [(7.1,-6.9), (-7,-9), (5,10), (-9.5,-8)] 输出: [-1.73, 0.58, 11.58] 3: 输入: …

2
椭圆曲线上的加法
椭圆曲线上的加法 免责声明:这对椭圆曲线这一丰富话题没有任何根据。它简化了很多。由于椭圆曲线最近在加密方面引起了媒体的广泛关注,我想提供一些小见识,以了解如何在椭圆曲线上进行“计算”实际上是如何工作的。 介绍 椭圆曲线是(x,y)表单平面中的点集y^2 = x^3+Ax+B。(此外,4A^3+27B^2 ≠ 0为了避免令人讨厌的奇异性。)您可以在任何字段中考虑这些曲线。如果使用实数字段,则曲线可以可视化,看起来像这样: 资源 这些曲线的特殊之处在于它们具有内置的算术运算,类似于加法运算。您可以添加和减去点,并且此操作既是关联的又是交换的(阿贝尔群)。 加法如何工作? 注意:在椭圆曲线上添加点并不直观。之所以定义这种加法,是因为它具有某些不错的属性。很奇怪,但是行得通。 当椭圆曲线形成一个组时,存在一个等于0 的加法标识。也就是说,添加0到任何点都不会改变结果。此加性标识是无穷大的“点”。平面上的所有线都在无穷远处包含此点,因此添加它没有区别。 假设任何给定的线在三个点处可能与曲线相交0,而这三个点的总和为0。牢记这一点,请看一下这张图片。 资源 现在,自然的问题是,什么是P+Q?好吧,如果是P+Q+R = 0,那么P+Q = -R(或者写成R')。哪里-R呢 它是其中R + (-R) = 0,这是在x轴的另一侧,从R使得通过它们的行是垂直的,只有相交R,-R以及0。您可以在此图像的第一部分看到这一点: 资源 您可以在这些图像中看到的另一件事是,一个点与自身的总和意味着该线与曲线相切。 如何找到直线和椭圆曲线的交点 在两个不同点的情况下 通常,只有一条直线穿过两点P=(x0,y0), Q=(x1,y1)。假设它不是垂直的并且两个点是不同的,我们可以将其写为y = m*x+q。当我们想找到与椭圆曲线的交点时,我们可以写成 0 = x^3+Ax+B-y^2 = x^3+Ax+B-(m*x+q)^2 这是三次多项式。这些通常不那么容易求解,但是我们已经知道该多项式的两个零:我们要相加的两个点的两个x坐标x0, x1! 这样,我们就可以分解出线性因子(x-x0),(x-x1)并且剩下第三个线性因子,其根是x点的-坐标R。(-R。因为太多的对称性,请注意,如果R = (x2,y2)随后-R = (x2,-y2)的。-从该组;它不是一个矢量负)。 如果P自己加一点 在这种情况下,我们必须计算处的曲线的切线P=(x0,y0)。我们可以直接写入m,并q在以下方面A,B,x0,y0: 3*x0^2 + …

30
归一化向量
为了正常化的载体是将它扩展到1的长度(单位矢量),同时保持方向一致。 例如,如果我们想正常化的矢量3个组件,ü,我们会先找到它的长度: | u | = sqrt(u x 2 + u y 2 + u z 2) ...然后按此值缩放每个分量,以获得长度为1的向量。 û= u÷| u | 挑战 您的任务是编写一个程序或函数,给定一个带符号的整数的非空列表,将其解释为向量并将其标准化。例如,这应该适用于任意数量的维度(测试用例四舍五入到小数点后两位): [20] -> [1] [-5] -> [-1] [-3, 0] -> [-1, 0] [5.5, 6, -3.5] -> [0.62, 0.68, -0.40] [3, 4, -5, -6] -> [0.32, 0.43, -0.54, …

6
救命!我的计算器出现故障!
介绍 我的计算器很奇怪。有时,当我输入时8会显示2。有时,当我输入a 6时会显示+。一些按钮混在一起! 谁能帮我确定哪个? 挑战: 输入:错误方程式列表,结果正确。 输出:交换的两个按钮。 例如: 输入可以是: 123 = 3 8423 = 252 4+4 = 8 4*7-10 = 417 9/3 = 3 42-9 = -36 其预期的输出是:2和*。 为什么?因为如果我们交换2和*,则所有等式都是正确的: 1*3 = 3 84*3 = 252 4+4 = 8 427-10 = 417 9/3 = 3 4*-9 = -36 挑战规则: 输入可以采用任何合理的格式。可以是一个以空格分隔的字符串;字符串列表或-array; 一个包含方程式的列表和另一个包含正确结果的列表。你的来电。请说明您使用的输入格式! …
28 code-golf  number  arithmetic  integer  code-golf  math  number  geometry  code-golf  grid  code-golf  math  number  sequence  primes  code-golf  sequence  kolmogorov-complexity  code-golf  string  ascii-art  alphabet  code-golf  math  sequence  integer  code-golf  number-theory  integer  natural-language  code-golf  date  code-golf  function  code-golf  ascii-art  code-golf  math  number-theory  primes  classification  code-golf  array-manipulation  decision-problem  matrix  code-golf  number  code-golf  code-golf  ascii-art  matrix  code-golf  string  code-golf  sequence  base-conversion  code-golf  code-golf  math  number-theory  combinatorics  integer-partitions  code-golf  integer  binary  base-conversion  code-golf  integer  base-conversion  palindrome  code-golf  code-golf  integer-partitions  code-golf  math  ascii-art  matrix  code-golf  number  sequence  number-theory  matrix  code-golf  interpreter  code-golf  graph-theory  code-golf  ascii-art  decision-problem  code-golf  division  code-golf  array-manipulation  primes  code-golf  string  ascii-art  code-golf  primes  counting  code-golf  matrix  unicode  code-golf  source-layout  code-golf  grammars  code-golf  string  cops-and-robbers  regular-expression  obfuscation  string  code-challenge  cops-and-robbers  regular-expression  code-golf  kolmogorov-complexity  game  card-games  code-golf  kolmogorov-complexity  code-golf  array-manipulation  matrix  code-challenge  cops-and-robbers  code-challenge  decision-problem  cops-and-robbers  code-golf  permutations 

1
找出最大的凸多边形的面积
给定一个整数坐标列表,找到您可以从列表中构造的最大凸多边形的面积,以便- 每个顶点都在列表中 多边形内不包含列表的任何元素。 例: (0,0)(8,0)(0,1)(3,1)(7,1)(1,2)(5,2)(9,2)(2,3)(5,3) (7,3)(3,4)(5,5)(11,5) 可视化: o o o o o o o o o o o o o o 您可以从中制作的最大凸多边形是这样的: o o o o o o o o o 面积为12。 您可以采用任何合理的格式获取坐标列表,并应输出(以适合您选择的语言的适当方式)最大凸多边形的面积,该面积四舍五入到小数点后不少于2位。 此外,您必须使用某种算法,而不是简单地强行使用所有点子集。为了实现这一点,您的程序必须在一分钟内在现代PC上解决50个顶点的列表。 以字节为单位的最短代码获胜。

6
让我们画尼泊尔的国旗
尼泊尔的国旗(Wikipedia,Numberphile)看上去与其他任何国旗都大不相同。它还具有特定的绘图说明(包含在Wikipedia文章中)。我希望你们做一个能画出尼泊尔国旗的程序。 用户输入请求的标志高度(从100到10000像素),程序将输出尼泊尔的标志。您可以选择任何一种绘制标志的方式:从ASCII艺术到OpenGL的所有内容。 这是一场人气竞赛,因此获胜者将是2月1日获得最高投票的答案,因此不必担心代码长度,但是请记住,较短的代码可能会获得更多投票。 只有一个要求:不允许您使用Web资源。 玩得开心 :)

4
包含所有自由n-氨基酸的平面的最小区域
在Math Stack Exchange上,我问了一个有关可以包含所有自由n-ominos的最小区域的问题。 一旦我有更多的用语,我想将此序列添加到整数序列在线百科全书中。 例 九个单元格区域是平面的最小子集,可以包含所有十二个自由的5个氨基酸,如下所示。(免费的多米诺骨牌可以旋转和翻转。) (十二个单元格的区域是平面的最小子集,可以包含所有35个自由的6个氨基酸。) 挑战 计算平面中可以包含所有n-氨基酸作为n的函数的最小范围的上限。 这样的表开始: n | size --+------- 1 | 1* 2 | 2* 3 | 4* 4 | 6* 5 | 9* 6 | 12* 7 | 37 8 | 50 9 | 65 *These values are the smallest possible. 提交示例 1-omino: 1 …

30
钻石创作者+
挑战: 给定一个整数n作为输入。创建一个等于给定数字2倍的钻石n。 输入: 输入为整数n且2 <n≤3000。 输出: 输出将是一个字符串,并且将以菱形的形式出现+,在开始时带有加法线,显示n使用+ 例子 : D(3): +++ + +++ +++++ +++++ +++ + D(5): +++++ + +++ +++++ +++++++ +++++++++ +++++++++ +++++++ +++++ +++ + D(6): ++++++ + +++ +++++ +++++++ +++++++++ +++++++++++ +++++++++++ +++++++++ +++++++ +++++ +++ + 获奖标准: 这是代码高尔夫球,因此每种编程语言的最短代码以字节为单位。

14
两点之间的最短距离是一条线
对程序或函数进行编码,以在屏幕上构造至少400像素x 400像素的交互式画布。画布可以是您想要的任何颜色,有边框或无边框,有或没有标题栏等,仅是某种形式的显而易见的画布。 用户将单击画布的两个不同区域,并且程序必须以某种方式(STDOUT,显示警报等)输出两次单击之间的欧几里得距离(以像素为单位)。两次单击只能是左键单击,只能是右键单击,第一次单击是左键单击,第二次单击是右键,两次双击都以此类推,可以接受任何组合。特别说明:明确不允许单击和拖动(例如,使用MOUSEUP作为第二点);它们必须是两次不同的点击。 用户必须能够多次执行此操作,并且每次都必须获得输出,直到程序关闭/强制退出/被杀死/等等。您可以选择关闭的方法(单击X,Ctrl-C等),无论哪种代码适合您。 规则 完整的程序或功能都是可以接受的。但是,如果是函数,则仍必须以某种方式向用户显示输出(仅返回值是不可接受的)。 输出可以发送到控制台,显示为警报,填充到画布等。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。

19
画一个Reuleaux三角形!
该鲁洛三角形是由三个圆的交点所形成的形状,其中每个圈通过别人的中心。无论旋转,Reuleaux三角形的宽度始终等于圆的半径: 图片:Wolfram MathWorld 编写一个程序,将宽度r作为输入并显示该宽度的Reuleaux三角形(以像素为单位)。 您必须单独显示形状,即实心填充,未描边并在实心填充背景上显示。 code- golf-以字节为单位的最短程序获胜。

5
旋转超立方体
介绍 超立方体/梯形函数是普通立方体的4维等效项。它是通过以下方法制成的:使用立方体网,将其扩展到第3维,然后使用第4维将其折叠成超立方体。基本上是一个立方体,每边都是一个立方体。 要创建超立方体,您需要16个4d向量(一个具有an x,a y,a z和一个w分量的向量)。这些向量如下: A(0, 0, 0, 0); B(1, 0, 0, 0); C(1, 0, 1, 0); D(0, 0, 1, 0); E(0, 1, 0, 0); F(1, 1, 0, 0); G(1, 1, 1, 0); H(0, 1, 1, 0); I(0, 0, 0, 1); J(1, 0, 0, 1); K(1, 0, 1, 1); …

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.