我想使用如下所示的数学公式:
在node.js中,为了计算唯一环序列的总数,我可以使用k字符生成n长度,允许重复,而忽略镜像序列。
这个公式还需要计算前一个公式,如下所示:
这种“项链数”公式的结果被用作“手镯数量”公式中的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))发布于 2018-08-27 15:40:38
这是最后的解决方案,对我来说是正确的。
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))https://stackoverflow.com/questions/52040161
复制相似问题