首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数学公式转化为node.js

将数学公式转化为node.js
EN

Stack Overflow用户
提问于 2018-08-27 13:10:02
回答 1查看 873关注 0票数 3

我想使用如下所示的数学公式:

bracelets

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

这个公式还需要计算前一个公式,如下所示:

necklaces

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

编辑

以下是最后的解决方案:

代码语言:javascript
复制
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))
EN

回答 1

Stack Overflow用户

发布于 2018-08-27 15:40:38

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

代码语言:javascript
复制
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))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52040161

复制
相关文章

相似问题

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