Questions tagged «trigonometry»

对于三角学起着重要作用的挑战。

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 …

8
矩阵三角法
介绍 两种最常见的三角函数,sine和cosine(或sin和cos的简称),可以扩展为矩阵值函数。计算矩阵值类似物的一种方法如下: 考虑以下两个重要的三角恒等式: 使用这些标识,我们可以为sin和导出以下方程式cos: 该矩阵指数存在于所有方阵和由下式给出: 其中A 0是单位矩阵I与A具有相同的维度。使用矩阵指数,可以将这两个三角函数(以及所有其他三角函数)评估为矩阵的函数。 挑战 给定一个正方形矩阵甲,的输出的值sin(A)和cos(A)。 规则 输入和输出可以采用任何方便且合理的格式(2D数组,您的语言的矩阵格式等)。 您可以编写一个程序,两个独立程序,一个功能或两个功能。如果选择编写两个函数,则可能会在它们之间共享代码(例如,导入和帮助函数)。 输入矩阵的值将始终为整数。 由于浮点不精确,您的解决方案可能会出现准确性问题。如果您的语言具有神奇的无限精度值,那么您的解决方案应该可以完美地工作(忽略它需要无限的时间和/或内存的事实)。但是,由于不存在那些不可思议的无限精度值,因此可以接受由有限精度引起的不准确性。制定该规则是为了避免由于要求输出达到特定精度而导致的复杂情况。 不允许为矩阵参数计算三角函数的内建函数(包括双曲三角函数)。允许使用其他矩阵内建函数(例如乘法,乘幂,对角化,分解和矩阵指数)。 测试用例 格式: A -> sin(A), cos(A) [[0]] -> [[0]], [[1]] [[0, 2], [3, 5]] -> [[-0.761177343863758, 0.160587281888277], [0.240880922832416, -0.359709139143065]], [[0.600283445979886, 0.119962280223493], [0.179943420335240, 0.900189146538619]] [[1, 0, 1], [0, 0, 0], [0, 1, 0]] -> [[0.841470984807897, -0.158529015192103, …

15
找出两点之间的角度
给定两个点A和B,求AO出线BO与点之间的夹角,O其中点O为((0,0))。另外,取决于点的位置,角度可以为正或负(请参见示例)。输入将是点A和B,并且可以任何方便的形式给出。输出将是以度为单位的角度(但如果AO绕原点逆时针旋转则为正,如果顺时针旋转BO则为负)。如果角度为180度,则可能会返回负或正输出。同样,角度可以是相同角度(90 deg等于-270 deg)的正或负形式。例子: 输入:A(5,5) B(5,-5)输出:-90(AO旋转-90度得到BO)。 输入:A(5,-5) B(5,5)输出:90(AO旋转90度得到BO)。 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

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”等) 最短代码胜出 测试用例 在 …

4
帮助重新计算您的代表!
几个月前,我们在meta上进行了讨论,讨论如何提高因问题投票而获得的声誉。这是我们目前的投票信誉系统的基础:1 问题投票U值得5个声望。 回答投票u值得10个声誉。 问题或答案不满意d的人值得-2声望。 对于新系统,已经有许多不同的建议,但是当前最受欢迎的与上面的相同,但是问题投票的比例扩大到+10个代表。这项挑战是要计算出安装该系统后您将获得多少代表。 让我们来看一个例子。如果投票活动为UUUUuuuuUUUUUduuudUU,则在当前系统下,您的收入为121: U x 4 x 5 = 20 = 20 u x 4 x 10 = 40 = 60 U x 5 x 5 = 25 = 85 d x 1 x -2 = -2 = 83 u x 3 x 10 = 30 = …

20
月球两点之间的距离
给定的两个点的纬度/经度在月球(lat1, lon1)和(lat2, lon2),计算两个点之间的距离以公里,通过使用任何式给出相同的结果haversine公式。 输入值 四个整数值lat1, lon1, lat2, lon2(度)(角度)或 ϕ1, λ1, ϕ2, λ2以弧度表示的四个十进制值。 输出量 两点之间的距离(以公里为单位)(十进制任意精度或四舍五入整数)。 Haversine公式 哪里 r 是球体的半径(假设月球的半径为1737公里), ϕ1 点1的弧度(弧度) ϕ2 点2的弧度(弧度) λ1 点1的经度(弧度) λ2 点2的弧度 d 是两点之间的圆形距离 (来源:https : //en.wikipedia.org/wiki/Haversine_formula) 其他可能的公式 d = r * acos(sin ϕ1 sin ϕ2 + cos ϕ1 cos ϕ2 cos(λ2 - λ1)) @miles的公式。 d …

14
救救我,我迷失在海洋中!
介绍 今天我独自乘独木舟去钓鱼,不幸的是我睡着了,溪流把我带走了,我失去了桨,现在是晚上,我迷失在大海中!我看不到海岸,所以我必须很远! 我有手机,但由于被咸水弄湿而出现故障,由于麦克风和电话扬声器坏了,所以我无法讲话或听到任何声音,但是我可以向沿海海滩上的朋友发送短信! 我的朋友有一个非常强大的手电筒,他把它举在竹bamboo上,向我展示正确的方向,但是由于我没有桨,所以我不能划船,所以我必须告诉他我有多远,这样他就可以派人去抓住我! 我的朋友告诉我,他将手电筒保持在海平面11.50米处,我可以看到地平线上的光。现在,我只从学校里记得地球半径在海平面应为6371 Km,而且我坐在独木舟中,因此您可以假设我的眼睛也在海平面上。 任务 由于潮流使我时时刻刻在移动,我的朋友不时地举起火炬(现在是12.30米),请编写完整的程序或函数,以帮助我计算与朋友的位置之间的距离! 这是一个图(不按比例): 标记M为我的橙色点,标记T为火炬的红色点。绿线是M和之间的线性距离T 输入值 从标准输入中获取h在海平面以米为单位的火炬高度,我在地平线上以浮点数的形式显示该浮点数,精度为小数点后两位(精度为1厘米或0.01米)。范围从0到100。 输出量 您应该以1 cm的精度返回绿线的欧几里得长度。例如,如果以米为单位输出,则应至少使用两个小数。输出可以是米或公里,但要注意精度。 测试用例: 所有值以米为单位。 11.5 > 12105.08 13.8 > 13260.45 规则 最短的代码获胜。

1
打印特殊角度的sin,cos和tan
在三角学中,有某些角度称为“特殊角度”。这是因为当您采用这些角度之一的sin,cos或tan时,您得到的结果很容易记住,因为它是有理数的平方根。这些特殊角度始终是pi/6或的倍数pi/4。这是所有特殊角度及其对应的触发值的可视化。 如您所见,对于每个角度,它们都是一对对应的数字。第一个数字是该角度的余弦,第二个数字是该角度的正弦。要找到这些角度之一的切线,只需将sin除以cos。例如tan(pi/6)等于 sin(pi/6) / cos(pi/6) == (1/2) / (√3/2) == 1/√3 == √3/3 挑战 您必须编写一个包含3个输入的完整程序。 代表您应该计算的trig函数的单个char。这将是“ s”(正弦),“ c”(cos)或“ t”(棕褐色)。 输入角度的分子。这可以是任何正整数。请注意,输入5表示分子为5 * pi。 输入角度的分母。这将始终是以下之一:1, 2, 3, 4, 6 然后打印出该角度的触发函数的精确值。以下是所有角度最大为2 * pi的sin,cos和tan的列表: sin(0pi): 0 sin(pi/6): 1/2 sin(pi/4): root(2)/2 sin(pi/3): root(3)/2 sin(pi/2): 1 sin(2pi/3): root(3)/2 sin(3pi/4): root(2)/2 sin(5pi/6): 1/2 sin(1pi): 0 sin(7pi/6): -1/2 …
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.