首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >坐标和它们的质量列表中的质量中心

坐标和它们的质量列表中的质量中心
EN

Code Golf用户
提问于 2016-03-07 13:52:46
回答 8查看 6.8K关注 0票数 19

这是周一早上的快速挑战..。

用最少的字节编写一个函数或程序,这些字节:

  • 接受[x,y]坐标的列表作为输入
  • [x,y]坐标各自的质量的列表作为输入
  • [xBar,yBar]的形式输出计算的质量中心。

注意:

  • 只要使用数组,任何形式的输入都可以接受。

质量中心可用下列公式计算:

用简单的英语..。

  • 要找到xBar,将每个质量乘以其各自的x坐标,对结果列表进行和,并将其除以所有质量的和。
  • 要找到yBar,将每个质量乘以其各自的y坐标,对结果列表进行和,并将其除以所有质量的和。

平凡的Python2.7示例:

代码语言:javascript
复制
def center(coord, mass):
    sumMass = float(reduce(lambda a, b: a+b, mass))
    momentX = reduce(lambda m, x: m+x, (a*b for a, b in zip(mass, zip(*coord)[0])))
    momentY = reduce(lambda m, y: m+y, (a*b for a, b in zip(mass, zip(*coord)[1])))
    xBar = momentX / sumMass
    yBar = momentY / sumMass
    return [xBar, yBar]

测试用例:

代码语言:javascript
复制
> center([[0, 2], [3, 4], [0, 1], [1, 1]], [2, 6, 2, 10])
[1.4, 2.0]

> center([[3, 1], [0, 0], [1, 4]], [2, 4, 1])
[1.0, 0.8571428571428571]

这是代码-高尔夫,所以最少的字节数获胜!

EN

回答 8

Code Golf用户

发布于 2016-03-07 14:42:30

Mathematica,10字节

代码语言:javascript
复制
#.#2/Tr@#&

示例:

代码语言:javascript
复制
In[1]:= #.#2/Tr@#&[{2,6,2,10},{{0,2},{3,4},{0,1},{1,1}}]

Out[1]= {7/5, 2}
票数 7
EN

Code Golf用户

发布于 2016-03-07 17:35:48

Mathcad,19“字节”

  • 使用Mathcad的表进行数据输入
  • 使用Mathcad的内建矢量标量积乘以轴纵坐标和质量
  • 使用Mathcad的内置求和算子计算总质量

Mathcad使用2D“白板”和特殊运算符(例如,求和运算符、积分运算符)并以XML格式保存,因此实际工作表可能包含数百个(或更多)字符。为了使用Code,我使用Mathcad“字节计数”作为用户创建工作表时必须输入的字符或运算符的数量。

使用此定义的第一个(程序)版本需要19个“字节”,函数版本需要41个“字节”。

票数 7
EN

Code Golf用户

发布于 2016-03-07 14:14:57

CJam,14字节

代码语言:javascript
复制
{_:+df/.f*:.+}

一个未命名的函数期望堆栈上的坐标对列表和质量列表(按该顺序排列),并将质量中心留在它们的位置上。

在这里测试一下。

解释

代码语言:javascript
复制
_    e# Duplicate list of masses.
:+d  e# Get sum, convert to double.
f/   e# Divide each mass by the sum, normalising the list of masses.
.f*  e# Multiply each component of each vector by the corresponding weight.
:.+  e# Element-wise sum of all weighted vectors.
票数 5
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/74979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档