首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >乘积的导数

乘积的导数
EN

Code Golf用户
提问于 2022-05-07 00:33:14
回答 22查看 2.7K关注 0票数 33

在微积分中,数学函数的导数定义了它的变化速度。函数f(x)的导数可以标记为f'(x),有时可以缩写为ff'

两个函数fg的乘积的导数是f'g + g'f。三fgh的导数是f'gh + fg'h + fgh'。一般说来,任意多个函数的乘积的导数是除一个函数以外的所有函数的乘积之和,乘以其余函数的导数对每个单个函数的求和。

您面临的挑战是,获取一串不同的字母字符,并将其转换为派生字符。不需要间距或简化,由+分隔的术语可以按任何顺序排列。该字符串将至少包含两个字符。

这是密码-高尔夫,所以最短的代码赢了!

测试案例

代码语言:javascript
复制
abc -> a'bc+ab'c+abc'
de -> d'e+de'
longabcdef -> l'ongabcdef+lo'ngabcdef+lon'gabcdef+long'abcdef+longa'bcdef+longab'cdef+longabc'def+longabcd'ef+longabcde'f+longabcdef'
short -> s'hort+sh'ort+sho'rt+shor't+short'
EN

回答 22

Code Golf用户

发布于 2022-05-07 05:08:47

Pip,15字节

代码语言:javascript
复制
aRL#aJ'+<>#aJ''

在网上试试!

解释

代码语言:javascript
复制
aRL#aJ'+<>#aJ''
a                Command-line arg       "abc"
   #a            Length of arg          3
 RL              Repeat-list            ["abc"; "abc"; "abc"]
     J'+         Join on "+"            "abc+abc+abc"
        <>#a     Groups of size len(a)  ["abc"; "+ab"; "c+a"; "bc"]
            J''  Join on "'"            "abc'+ab'c+a'bc"
票数 25
EN

Code Golf用户

发布于 2022-05-09 15:28:41

Python,47字节

代码语言:javascript
复制
lambda s:"+".join(s.replace(c,c+"'")for c in s)

在网上试试!

它的工作原理:

代码语言:javascript
复制
a  b  c  d --> a' b  c  d 
a  b  c  d --> a  b' c  d 
a  b  c  d --> a  b  c' d 
a  b  c  d --> a  b  c  d'

then join with '+'
票数 7
EN

Code Golf用户

发布于 2022-05-07 01:24:16

因子,53字节

代码语言:javascript
复制
[ dup length [1,b] [ cut "'"glue ] with map "+"join ]

在网上试试!

如果每个产品的顺序都不重要:

因子,43字节

代码语言:javascript
复制
[ all-rotations [ 39 suffix ] map "+"join ]

在网上试试!

解释

代码语言:javascript
复制
                  ! "short"
all-rotations     ! { "short" "horts" "ortsh" "rtsho" "tshor" }
[ 39 suffix ] map ! { "short'" "horts'" "ortsh'" "rtsho'" "tshor'" }
"+"join           ! "short'+horts'+ortsh'+rtsho'+tshor'"
票数 6
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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