Questions tagged «geometry»

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

13
直方定位
欢迎来到我的第一个高尔夫挑战赛!:)让我们跳进去吧。 挑战: 给定两个浮点向量,O(原点)和T(目标),您必须创建一个程序以将值L和R打印到STDOUT。 O是正方形的一个角 T是正方形的一个角,位于O的对面 L是2D点(角),表示不完整正方形的另一个点 R是与L相反的2D点(角) 规则 O和T的值必须从STDIN中读取(请参见示例输入)。 同样,必须将L和R的值打印到STDOUT。 计分和奖金 计算程序的字节数。 如果您的程序绘制的线在O到L到T到R之间连接,请从字节数中减去15个字节。 例子 第一行涵盖输入(O的第一个方括号和T的下一个括号),其他行代表预期的输出。 [0,0] [3,3]预期值:[0,3] [3,0] [0,0] [-2,-2]预期值:[-2,0] [0,-2] [1,-1] [4,2]预期:[1,2] [4,-1] [0,-1] [0,1]预期值:[-1,0] [1,0] 注意:输入和输出可以是浮点! 重要信息! 值O和T可以采用任何格式,只要它们来自STDIN(例如,在[]或()...之内),请使用所需的任何格式。 L和R可以任何顺序打印。 请记住:连接(O-> L-> T-> R-> O)时,每一侧的长度必须相同! 获奖 这是代码高尔夫球,因此最少的字节答案会获胜! 优胜者答案将在2015年11月15日星期日(芬兰时间)接受(如果我没记错的话,该日期写成美国2015年11月15日的样子,请不要感到困惑)。 打高尔夫球快乐!

5
金字塔计划
玛雅金字塔曾经(并且是)古代建筑的重要组成部分,通常用于宗教目的。 它们通常是台阶金字塔,但每个台阶都陡峭得无法攀登。牧师将通过替代楼梯爬到他们的顶上进行仪式。由于金字塔的高度,它们还被用作地标,有时甚至被用作高级官员的墓地。 挑战 编写一个程序,该程序可以根据用户要求打印出金字塔示意图(请参见下文)。 要求 输入两个以空格分隔的变量。 必须通过STDIN(或最接近的替代方法)接受输入。 输出必须通过STDOUT(或最接近的替代品)。 输入值 高度为任何正整数。这用作基本级别的宽度(以块为单位)。金字塔的每个后继级的宽度为n - 1其中n是前地板的宽度(在块)。 块大小将为1或任何奇数正整数≤(小于)10。 积木 给定的块大小确定每个单独的块的宽度(和高度)。本质上,i^2可见框内的空格i是块大小。 1x1块如下所示: +++ | | +++ 虽然5x5块看起来像这样: +++++++ | | | | | | | | | | +++++++ 水平相邻块 水平并排的砌块必须将其中间墙合并为一个。 您必须具备以下条件: +++++ | | | +++++ 代替这样的事情: ++++++ | || | ++++++ 垂直相邻的方块(-5%奖金) 垂直并排的砖块有一个特殊的例外:中墙可以合并为一个。 因此,而不是像这样的1x1块: …

1
我可以用砖块,楼板和楼梯做成这种形状吗?
考虑一个矩形二维网格,其中每个单元格可以为空(.)或完整(0)。 例如 ..00.... 0000.... .00000.. 000...00 ..000000 000.00.. 网格被认为是无限的,所描绘区域之外的所有像元都是空的。 目标是使用一组7个形状各异的砖块覆盖填充的空间并使空白空间保持开放,每个砖块占用4个网格(2×2)。 这些是7块砖: 方块-1个变体 11 11 平板-2个款式 .. 22 33 .. 楼梯-4个款式 .4 44 5. 55 66 .6 77 7. 这些积木必须始终与其单元格是输入网格的单元格的宽度和高度的两倍的网格对齐。每块积木只能占据该较大网格的一个单元,但是较小网格可以在较大网格下方平移(上移,下移,左移,右移),以提供更多用于查找封面的选项。网格和单个砖块均不得旋转。 因此,覆盖(又称求解)上面示例的一种方法是这样的: ..11.... 2211.... .47733.. 447...22 ..771133 227.11.. (相同的相邻砖块仍然可能引起歧义,但是仔细识别较大的网格可以解决这一问题。) 一个无效的解决方案 000000 000000 是 566774 556744 因为砖块并不都与较大的网格对齐,也不是仅占据其中一个单元。 一个有效的解决方案是连续3个块: 111111 111111 另一个有效的解决方案涉及6个平板: ...... 222222 …

1
公平分享披萨
与朋友共享披萨的困难在于,很难确保每个人都得到相同数量的意大利辣香肠。因此,您的任务是决定如何公平地切片披萨,以便每个人都开心。 方向 编写一个程序,给定圆形比萨饼上意大利辣味香肠的位置列表和要制作的切片数量,输出一个程序,将比萨饼切成的角度列表,以使每个切片上的比萨饼数量相同它。 披萨只有一个馅料:意大利辣香肠。 您的朋友不在乎切片的大小,只是他们没有从任何意大利辣香肠中被骗。 比萨饼是一个以原点为中心的圆(0, 0),半径为1。 意大利辣香肠是圆心,只要输入内容表明它们居中且半径为0.1 将输入作为代表要制作的切片数量的整数,以及代表意大利辣香肠在直角坐标系上的位置的有序对列表。(以任何合理的格式) 输出应该是一个以弧度表示的角度列表,该角度表示比萨的“切口”的位置(在范围内0 <= a < 2pi)。(以任何合理的格式)(精度至少应为+/- 1e-5。) 您可以在切片上放上一部分意大利辣香肠(例如,如果一个比萨饼上有一个意大利辣香肠,并且需要由10个人共享,则将比萨切成10次,全部切成薄片切成意大利辣香肠。但是要确保它是公平的) !) 切成薄片(可能必须)切成多个意大利辣味香肠。 意大利辣味香肠可能会重叠。 例子 输入: 8 people, pepperonis: (0.4, 0.2), (-0.3, 0.1), (-0.022, -0.5), (0.3, -0.32) 可能的有效输出: slices at: 0, 0.46365, 0.68916, 2.81984, 3.14159, 4.66842, 4.86957, 5.46554 这是此示例的可视化(每个人都可以得到一半的意大利辣香肠): 更多示例: Input: 9 people, 1 pepperoni …

3
三角形的中心
圆和正方形具有单个确定的中心点。然而,三角形中心的概念早已被讨论。古希腊人知道四个不同的中心: 中心:三角形的角平分线的交点 质心:从三角形的每个顶点到其相对边的中间的线的交点 外心:侧边的垂直平分线的交点 垂心:三角形的高度的交点 欧拉后来证明,质心,外心和正交中心在任何三角形中共线。这三个点在一个三角形上的线称为欧拉线。它是为除等边三角形以外的所有三角形定义的,所有点都重合。 您面临的挑战是创建最短的程序或函数,当给出两个输入时,将输出特定的中心或三角形的欧拉线。第一个指定三角形每个顶点的坐标。第二个是1到5之间的整数,用于确定要输出的内容。 1 - Incenter 2 - Centroid 3 - Circumcenter 4 - Orthocenter 5 - Equation of Euler Line (if the Euler Line is vertical, output the `x` value of the line (e.g. output `5` if the equation of the line is `x = …

3
Brainfuck中的按位运算符
您的任务是为以下每个二进制运算符创建一个Brainfuck程序。每个程序应从输入中获取一个或两个8位数字(A和B)并计算指定的运算: A XOR B A AND B A OR B A Shifted Left by 1 (circular shift) NOT A 您不必全部实施5。得分的计算方式为: #totalCharacters + {4000 * #problemsNotCompleted} 因此,有效分数是从零(最佳)到20,000(未完成)。 我不在乎您将结果存储在哪里,也不管您是否保留输入。假设8位单元以及仅在右侧需要的空单元数。 您可能会认为数字已经在最适合您的任何内存位置中,因此您无需担心IO操作。
13 code-golf  binary  brainfuck  code-golf  code-golf  ascii-art  random  code-golf  code-golf  code-challenge  sorting  code-golf  code-challenge  java  code-golf  statistics  code-golf  code-challenge  fastest-code  code-golf  math  code-golf  math  kolmogorov-complexity  code-golf  code-golf  array-manipulation  combinatorics  code-golf  kolmogorov-complexity  popularity-contest  underhanded  code-golf  math  floating-point  code-golf  interpreter  code-golf  music  code-golf  code-golf  cryptography  code-challenge  scrabble  code-golf  code-challenge  popularity-contest  quine  code-golf  quine  cryptography  code-golf  kolmogorov-complexity  code-golf  printable-ascii  code-golf  chess  code-golf  math  number-theory  code-challenge  c  code-golf  random  popularity-contest  hello-world  code-shuffleboard  code-golf  compression  grammars  code-golf  tips  code-golf  sequence  code-golf  string  code-challenge  sorting  permutations  code-golf  string  code-challenge  optimization  code-golf  interpreter  code-challenge  string  code-golf  math  number  fibonacci  string  compression  c#  code-golf  chemistry  popularity-contest  math  c  c++  java  code-golf  math  function  code-golf  complex-numbers  code-golf  geometry 

3
用三角求解三角形
是时候从高中挖掘旧的三角学笔记了!挑战在于解决不同三角形的未知边和角度。按照编码高尔夫的惯例,最小的有效编码将获胜。 这不是一个小问题。我在python中的参考实现目前只有838 837个字符,但是我敢肯定,您将可以使用更小的解决方案。 此外,如果您受困,那么Wikipedia上的这一部分将使您着手进行:Triangle:计算边和角。 输入值 下面的三角形显示了此挑战中使用的边和角度的名称。请注意,侧面是小写字母,而角度是大写字母。 输入以六个空格分隔的值形式给出,可以是在stdin命令行参数上,也可以是命令行参数(您的选择)。这六个值分别对应于侧面a, b, c和角度A, B, C。未知的一面以问号(?)给出。输入和输出角度都必须以弧度为单位。您可以假设输入值正确(您无需验证任何内容)。您还可以假设输入三角形不退化,并且所有边和角度都不为零。 以下示例输入告诉您side a为8,side b为,12而angle A为0.5弧度: 8 12 ? 0.5 ? ? 输出量 输出以与输入相同的格式给出-上用六个空格分隔的数字stdout。唯一的例外是,当无法求解输入三角形时,"No solution"必须将字符串写入stdout。如果可能有两种解决方案,则它们都将以换行符的形式输出。 以下是上述输入的输出: 8.0 12.0 16.0899264342 0.5 0.802561439714 1.83903121388 8.0 12.0 4.97205505116 0.5 2.33903121388 0.302561439714 输出不需要具有很高的精度,但是至少需要几个小数。 规则 输入是stdin从命令行参数中读取的 输出写入 stdout 如果给定输入有两种解决方案,则输出两者 如果信息太少而无法获得一两个清晰的解决方案,请考虑使用这种"No solution"情况 不能使用内置或预先存在的代码(当然,您可以使用触发函数,但不能使用“ solveTriangle”等) 最短代码胜出 测试用例 在 …

2
计数广义多胺
这项挑战将使您在缓冲正方形平铺上计算伪多边形。 我认为该序列在OEIS上尚不存在,因此在为该序列计算尽可能多的项方面存在挑战。 更新:这现在在OEIS上显示为A309159:n个单元格的缓冲正方形平铺上的广义多形形式的数量。 定义 缓冲正方形平铺是由等边三角形和正方形组成的平面的半规则平铺。 缓冲正方形瓷砖上的伪多边形是通过将这些三角形和正方形沿着它们的共享边连接在一起而构造的平面图,类似于多米诺骨牌。这是一个六单元格和八单元格伪多边形的示例: 例子 因为n = 1有两个1单元格伪多边形,即正方形和三角形: 因为n = 2有两个2单元格伪多边形,即一个带有一个三角形的正方形和两个三角形。 因为n = 3有四个3单元伪多态。 挑战 挑战的目标是按此顺序计算尽可能多的项 2, 2, 4, ...且第n个项是直至旋转和反射的n单元伪多形式的数量。 只要您愿意,就可以运行您的代码。挑战的胜者将是发布序列中最多术语以及其代码的用户。如果两个用户发布相同数量的条款,则以最早发布最新条款的人为准。 (一旦有足够的已知术语证明该序列在OEIS中尚不存在,我将在OEIS中创建一个条目,并根据需要将投稿人列出为合著者。)

4
计算三角形的费马点
这有点类似于三角形的中心,但是具有不同的点。在费马点是在三角形ABC中的点P,使得AP + BP + CP的值被最小化。有两种情况: 如果角度大于120度,则该顶点为费马点。否则,在ABC的每一侧上绘制等边三角形。将每个等边三角形的远顶点连接到三角形ABC的相反顶点。对三个等边三角形中的每一个进行此操作会导致所有三条线的单个公共交点,即费马点。 它应在合理的计算机上运行5秒钟。 输入:一组3点,不一定是整数。可以将其视为嵌套数组,字符串,元组列表等(无论哪种语言)。 输出:同样,费马点的坐标,但是您的语言最能处理点。浮点数错误将不算在您身上。 测试用例: [[1, 1], [2, 2], [1, 2]] --> [1.2113248654051871, 1.788675134594813] [[-1, -1], [-2, -1], [0, 0]] --> [-1, -1] [[-1, -1], [1, -1], [0, 1]] --> [0, -0.42264973081037427] [[0, 0], [0.5, 0.8660254037844386], [-5, 0]] --> [0, 0] [[0, 0], [0, -5], …

5
稀疏量角器
给定一些正整数n,设计一个带有最少标记数的量角器,使您能够测量所有角度的整数倍2π/n(每个角度一次测量)。 细节 作为输出,可以在的范围内输出的整数列表0到n-1(或1到n)表示每一个标记的位置。或者,也可以输出长度的串/列表n与#在每个标记的位置和_(下划线)在有无。(或两种不同的字符,如果更方便的。) 实施例:对于n = 5您需要的3马克到能够测量所有角度2π/5, 4π/5, 6π/5, 8π/5, 2π通过设置(例如)在1马克0,在1马克2π/5和1马克6π/5。我们可以将其编码为列表[0,1,3]或字符串##_#_。 例子 注意,输出不一定是唯一的。 n: output: 1 [0] 2 [0,1] 3 [0,1] 4 [0,1,2] 5 [0,1,2] 6 [0,1,3] 7 [0,1,3] 8 [0,1,2,4] 9 [0,1,3,4] 10 [0,1,3,6] 11 [0,1,3,8] 20 [0,1,2,3,6,10] PS:这类似于稀疏标尺问题,但是我们考虑使用圆形(角形)刻度,而不是线性刻度(两端)。 PPS:此脚本应为每个脚本计算一组标记的一个示例n。在线尝试! PPPS:正如@ngn所指出的,此问题等效于找到阶的循环组的最小差分基n。最小订单在http://oeis.org/A283297中列出,一些理论界限在https://arxiv.org/pdf/1702.02631.pdf中找到

6
找出有理生成函数的系数
如果我们写一个数字序列作为幂级数的系数,则该幂级数称为该序列的(普通)生成函数(或Gf)。也就是说,如果对于某些函数F(x)和整数系列,a(n)我们有: a(0) + a(1)x + a(2)x^2 + a(3)x^3 + a(4)x^4 + ... = F(x) 然后F(x)是的生成函数a。例如,几何级数告诉我们: 1 + x + x^2 + x^3 + x^4 + ... = 1/(1-x) 因此,的生成函数1, 1, 1, ...为1/(1-x)。如果我们对上面方程的两边求和并乘以x得到以下等式: x + 2x^2 + 3x^3 + 4x^4 + ... = x/(1-x)^2 因此,的生成函数1, 2, 3, ...为x/(1-x)^2。生成函数是一个非常强大的工具,您可以使用它们来做很多有用的事情。在这里可以找到简短的介绍,但是要获得真正彻底的解释,请参见惊人的图书生成功能学。 在此挑战中,您将有理函数(两个具有整数系数的多项式的商)作为两个整数系数数组的输入作为输入,首先是分子,然后是分母。例如,功能f(x) = x …
12 code-golf  math  integer  polynomials  code-golf  math  abstract-algebra  restricted-time  code-golf  math  primes  code-golf  math  number  arithmetic  code-golf  quine  code-golf  number  sequence  code-golf  string  number  code-golf  array-manipulation  code-golf  number  code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

14
用零填充文件
今天的任务是获取一个现有文件,并将零添加到该文件,直到达到一定大小为止。 您必须编写一个程序或函数,该程序或函数采用当前目录中文件的名称f和字节数b。在保留的原始内容的同时f,您必须在末尾写入零(空字节,而不是ascii 0),以便其新大小为b字节。 您可以假设名称中f仅包含字母数字的ascii,您对此具有完全权限,其初始大小不大于b,但可能与一样大b,并且有无限的可用磁盘空间。 您可能不会假设f它是非空的,或者它不已经包含空字节。 执行结束后,不应修改其他现有文件,也不应该存在新文件。 测试用例 f的内容| b | f的结果内容 12345 | 10 | 1234500000 0 | 3 | 000 [空] | 2 | 00 [空] | 0 | [空] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

3
网格可以弯曲。你多久了?
考虑在W宽x H高的文本网格上绘制一条简单的,开放的二维曲线,其中X该曲线.表示曲线的一部分,表示空白,不使用其他任何字符。 每个网格空间都有8个相邻的网格空间,即Moore邻域。边界之外的网格空间被认为是空的。 网格包含曲线,如果有且只有一个X OR,如果有一个以上的X地方: 正好2个X只有一个相邻X。这些是曲线的端点。 X除端点外,每个端点都恰好相邻2 Xs。这些构成了曲线的主体。 例如,此W = 9而H = 4的网格包含一条曲线: ....X.... .X.X.X.X. X..X..X.X .XX.....X 同样,这些网格(W = 4,H = 3)具有曲线: .... .X.. .... .... .X.X .... X..X ..X. XX.. X.X. ..X. .XX. .X.. .... .... 但是,这些网格不包含曲线: .... .XX. ...X XX.. .... X.X. .... X..X ..XX XX.. .X.X .X.. …

23
多边形数
多边形数是ksize的一个点中的点数n。 您将得到n和k,并且您的任务是编写一个输出/打印相应编号的程序/功能。 计分 这是代码高尔夫球。以字节为单位的最短解决方案获胜。 例 的3RD六边形数(k=6, n=3)是28因为有28上面的点。 测试用例 可以从此Pyth测试套件生成。 用法:每个测试用例n在上,k下两行。 n k output 10 3 55 10 5 145 100 3 5050 1000 24 10990000 更多信息 在Wikipedia中:https://en.wikipedia.org/wiki/Polygonal_number 在Wolfram Mathworld中:http : //mathworld.wolfram.com/PolygonalNumber.html 在OEIS Wiki中:http : //oeis.org/wiki/Polygonal_numbers 各种n的n角数的OEIS序列:3 (A000217),4 (A000290),5 (A000326),6 (A000384),7 (A000566),8 (A000567),9 (A001106),10 (A001107),11 (A051682),12 (A051624),13 (A051865),14 (A051866),15 (A051867),16 (A051868),17 …

1
通过整数操作实现IEEE 754 64位二进制浮点数
(我暂时将问题标记为“ C”,但是如果您知道另一种支持联合的语言,则也可以使用它。) 您的任务是+ - * /为以下结构构建四个标准数学运算符: union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 这样操作本身就只能操纵或访问整数部分(因此也不能在操作过程中的任何时候都与double进行比较),并且结果是完全相同的(对于非数字结果,例如,功能上是等效的NaN)好像相应的数学运算已直接应用于double。 您可以选择要操作的整数部分,甚至可以在不同的运算符之间使用不同的整数部分。(尽管我不确定您是否要这样做,您也可以选择从联合中的任何字段中删除“未签名”。) 您的分数是四个运算符中每个字符的代码长度总和。最低分获胜。 对于不熟悉IEEE 754规范的我们来说,这是一篇有关Wikipedia的文章。 编辑: 03-06 08:47在intfloat结构中添加了构造函数。您可以使用它们进行测试,而不必手动设置double /etc。

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.