首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用基尔霍夫定律

应用基尔霍夫定律
EN

Code Golf用户
提问于 2016-02-07 11:33:34
回答 12查看 2.6K关注 0票数 15

基尔霍夫定律说,当你把所有的电流(对于通往一个交界处的电流是正的,对于离开一个交界处的电流是负的)加起来,你就会得到结果0。

看下面的图表:

用基尔霍夫定律,你可以看到i1 + i4 - i2 - i3 = 0,所以i1 + i4 = i2 + i3。

给出两个列表,一个包含所有的电流进入交界处,另一个用除一个以外的所有电流离开连接,输出最后一个。

测试案例:

代码语言:javascript
复制
[1, 2, 3], [1, 2] = 3
[4, 5, 6], [7, 8] = 0
[5, 7, 3, 4, 5, 2], [8, 4, 5, 2, 1] = 6

第二个列表总是比第一个列表少一个项。输出不能为负值。最小的节目赢了。

EN

回答 12

Code Golf用户

发布于 2016-02-07 11:58:56

果冻,2字节

代码语言:javascript
复制
_S

在这里试试!

在第一个参数中获取输入电流,在第二个参数中获取离开电流。_对它们进行两两减法,将单个元素从较长的列表中删除为-is,而S则对结果进行求和。

票数 14
EN

Code Golf用户

发布于 2016-02-07 15:55:41

Haskell,14字节

代码语言:javascript
复制
(.sum).(-).sum

用法示例:( (.sum).(-).sum ) [5,7,3,4,5,2] [8,4,5,2,1] -> 6

把每个列表加起来,然后取差额。

票数 9
EN

Code Golf用户

发布于 2016-02-07 12:04:53

05AB1E,4字节

代码:

代码语言:javascript
复制
OEO-

解释:

代码语言:javascript
复制
O     # Take the sum of the input list
 E    # Evaluate input
  O   # Take the sum of the input list
   -  # Substract from each other

感谢Luis提醒我,我需要实现一个级联函数。如果我能更早地实现它,它将是3个字节:

非竞争版本(3个字节):

第一个列表是离开当前列表,第二个列表是输入当前列表。代码:

代码语言:javascript
复制
(«O

解释:

代码语言:javascript
复制
(    # Negate the list, e.g. [3, 4, 5] would become [-3, -4, -5]
 «   # Concatenate the second list to the first
  O  # Take the sum and implicitly output it

使用CP-1252编码。

票数 3
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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