首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >梯形黎曼和

梯形黎曼和
EN

Code Golf用户
提问于 2021-06-16 06:35:36
回答 13查看 795关注 0票数 8

给出一个坐标对的列表,输出第一个和最后一个x坐标之间的值的梯形Riemann和。

您将得到一个排序的坐标对列表,如下所示:

代码语言:javascript
复制
[
  [1,2],
  [3,5],
  [5,11]
]

请注意,x-坐标总是按递增顺序排列,ys可能不会.

我的方法是(你可能会发现另一种方式):

获取对坐标:

代码语言:javascript
复制
[1,2],[3,5] and [3,5],[5,11]

对于每一对(让我们从第一对开始):

  • 取y-值的平均值:(2 + 5) /2= 7/2
  • 取x值的差值:3-1=2
  • 将两者相乘,得到该截面的面积,即7/2 *2= 7。

对所有的人都这样做。让我们快速浏览下一个,3,5,5,11。

Y值平均值= (5 + 11) /2=8 x值差=(5-3)=2乘积=2*8= 16

现在取所有值之和,结果是16+7 = 23。

评分

这是密码-高尔夫,最短的胜利!

测试案例

代码语言:javascript
复制
[ [1,2], [3,5], [5,11] ] => 23
[ [3,4], [4,1], [7,5] ] => 11.5
[ [0,0], [9,9] ] => 40.5
[ [1,1], [2,3], [3,1], [4,3] ] => 6

注意,输入总是包含非负整数.在我亲手解决的时候,告诉我是否有任何测试病例是错误的。

您可以选择一个平面列表,或者用x和y交换的列表。

EN

回答 13

Code Golf用户

回答已采纳

发布于 2021-06-16 10:43:50

八度 / MATLAB,6字节

代码语言:javascript
复制
@trapz

在网上试试!

票数 1
EN

Code Golf用户

发布于 2021-06-16 10:25:54

外壳,11字节

代码语言:javascript
复制
ṁΠTzẊe-o½+T

在网上试试!

这是一个罕见的问题,你可以在哪里使用一个函数列表!

解释

代码语言:javascript
复制
ṁΠTzẊe-o½+T
          T transpose
   z        zipwith
     e      list of 2 functions:
      -      difference
       o½+   average
    Ẋ       using pairwise reduce
  T         transpose back
ṁ           map to and sum:
 Π           product
票数 4
EN

Code Golf用户

发布于 2021-06-16 06:42:58

果冻,9字节

代码语言:javascript
复制
ạ+ƭ"P¥ƝSH

在网上试试!

代码语言:javascript
复制
ạ+ƭ"P¥ƝSH  Main Link
     ¥Ɲ    For each (overlapping) pair
   "       Vectorize; apply to x coordinates then the y coordinates
  ƭ        Tie:
ạ          - for the x coordinates, absolute difference
 +         - for the y coordinates, sum
    P      Product
       S   Sum
        H  Halve
票数 3
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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