加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

unix – 直流中的计算对数

发布时间:2020-12-16 01:49:50 所属栏目:安全 来源:网络整理
导读:我看过bc的 this question,但是你怎么用直流电来做这个?例如,如果命令是q,我会想要像这样使用它: 10k5q2q/ 计算log_2(5). 解决方法 在dc中没有内置命令,但您可以实现任何 numerical methods以将对数计算为宏. 例如,this one使用ln((1 y)/(1-y))泰勒级数展
我看过bc的 this question,但是你怎么用直流电来做这个?例如,如果命令是q,我会想要像这样使用它:

10k
5q2q/

计算log_2(5).

解决方法

在dc中没有内置命令,但您可以实现任何 numerical methods以将对数计算为宏.

例如,this one使用ln((1 y)/(1-y))泰勒级数展开计算ln(x):

# L (x -- y)
# Natural logarithm of `x`.
[ 1-d2+/
  d2*Sk              # Initialize multiplier
  d*Sy               # Initialize multiplier factor
  0Ss                # Initialize accumulator
  10K^Sp             # Initialize 10^k power
  [ d1r/lk*ls+lsrdss   # Update accumulator
    -lp*d*1 [s_q]s_>_  # Check precision
    lkly*sk 2+         # Update multiplier and counter
    lfx
  ]Sf
  1lfxLs
LkLyLpLfs_s_s_s_] sL

像这样使用它:

10k
5lLx 2lLx /p

它不是最优的,特别是对于大数(x >> 1),但如果需要,也可以通过这种方式实现具有更快收敛的方法.

挤压版(稍快):

[1-d2+/d2*Skd*Sy0Ss10K^Sp[d1r/lk*ls+lsrdss-lp*d*1[s_q]s_>_lkly*sk2+lfx]Sf1lfxLsLkLyLpLfs_s_s_s_]sL

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读