gpt4 book ai didi

javascript - 将数学公式转换为 node.js

转载 作者:搜寻专家 更新时间:2023-10-31 23:57:13 27 4
gpt4 key购买 nike

我想使用此处列出的数学公式:

https://en.wikipedia.org/wiki/Necklace_(combinatorics)#Number_of_bracelets

在 node.js 中计算我可以使用 k 个字符生成 n 长度的唯一环序列的总数,允许重复,并忽略镜像序列

这个公式还需要计算前面的公式,如下所列:

https://en.wikipedia.org/wiki/Necklace_(combinatorics)#Number_of_necklaces

“项链数”公式的结果用作“手镯数”公式中的Nk(n)

编辑

这是最终的解决方案:

const phi = require('number-theory').eulerPhi
const divisors = require('number-theory').divisors

let n = 6,
k = 5,
sum = (arr, func) => arr.reduce( (acc, n) => acc + func(n), 0),
divisorsArray = divisors(n),
necklaces = (1/n) * sum(divisorsArray, (d) => phi(d) * k ** (n/d))

let bracelets = (n % 2) ?
(necklaces/2) + 0.5 * (k ** ((n+1)/2)) :
(necklaces/2) + 0.25 * (k+1) * (k ** (n/2))

最佳答案

这是最终的解决方案,对我来说是正确的

const phi = require('number-theory').eulerPhi
const divisors = require('number-theory').divisors

let n = 6,
k = 5,
sum = (arr, func) => arr.reduce( (acc, n) => acc + func(n), 0),
divisorsArray = divisors(n),
necklaces = (1/n) * sum(divisorsArray, (d) => phi(d) * k ** (n/d))

let bracelets = (n % 2) ?
(necklaces/2) + 0.5 * (k ** ((n+1)/2)) :
(necklaces/2) + 0.25 * (k+1) * (k ** (n/2))

关于javascript - 将数学公式转换为 node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52040161/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com