Board logo

标题: [数值计算] 【已解决】怎样用批处理计算对数log(x,y)和指数幂power(x,y) [打印本页]

作者: 小白一个    时间: 2016-9-28 16:36     标题: 【已解决】怎样用批处理计算对数log(x,y)和指数幂power(x,y)

本帖最后由 小白一个 于 2016-9-30 11:46 编辑

怎样用批处理程序计算指数和对数?

网上百度了好久,也没有找到,有像C和JAVA哪种现有的公式直接调用么?
作者: codegay    时间: 2016-9-28 17:05



“Life is short
(You need Python)”
  1. >>> import math
  2. >>> math.log(13)
  3. 2.5649493574615367
  4. >>> math.log(13)
  5. 2.5649493574615367
  6. >>> pow(17,4)
  7. 83521
  8. >>>
复制代码

作者: happy886rr    时间: 2016-9-28 18:35

麦克劳林级数,稍加变化,增加收敛速度,用批处理可以实现,就是精度上不去,你要计算小数点后数万位的log,只能用C语言,C是是最快的。
作者: 小白一个    时间: 2016-9-28 19:09

麦克劳林级数,稍加变化,增加收敛速度,用批处理可以实现,就是精度上不去,你要计算小数点后数万位的log, ...
happy886rr 发表于 2016-9-28 18:35



    我只要计算可控范围内的数字就行了,不需要计算那么多位,但不知道如何操作
作者: Bella    时间: 2016-9-28 19:17

外部命令: http://batch-cn.qiniudn.com/tool/bc.exe
我在linux下用没什么问题, win下跑log就退出, 不知道什么原因
作者: codegay    时间: 2016-9-28 19:23

回复 5# Bella


    好像是去sf上下载。可能是bcn打包的一些文件不全。
作者: pcl_test    时间: 2016-9-28 19:28

本帖最后由 pcl_test 于 2016-9-28 21:47 编辑

powershell
  1. for /f %%a in ('powershell -c "[Math]::pow(2,4)"') do echo;%%a
  2. for /f %%a in ('powershell -c "[Math]::log(16,2)"') do echo;%%a
复制代码
js
  1. for /f %%a in ('mshta "javascript:new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Math.pow(2,4));close()"') do echo;%%a
  2. for /f %%a in ('mshta "javascript:new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Math.log(16)/Math.log(2));close()"') do echo;%%a
复制代码
vbs
  1. for /f %%a in ('mshta "vbscript:CreateObject("Scripting.Filesystemobject").GetStandardStream(1).Write(2^4)(close)"') do echo;%%a
  2. for /f %%a in ('mshta "vbscript:CreateObject("Scripting.Filesystemobject").GetStandardStream(1).Write(log(16)/log(2))(close)"') do echo;%%a
复制代码

作者: codegay    时间: 2016-9-28 19:39


模仿版主的,来一发python版
  1. for /f %a in ('python -c "print(__import__(""math"").log(16,2))"') do echo;%a
复制代码

作者: pcl_test    时间: 2016-9-28 19:39

回复 5# Bella

瑞士军刀
  1. gawk "BEGIN{print 2^4}"
  2. gawk "BEGIN{print log(16)/log(2)}"
复制代码

作者: Bella    时间: 2016-9-28 19:44

回复 9# pcl_test


    之前看到的笑话, 学了python, ruby后发现awk最装x, 一行流
awk至今不会, 去年看手册看不下去了, 用cut更简单
作者: codegay    时间: 2016-9-28 19:48

回复 10# Bella


    你还应该去学学perl
作者: codegay    时间: 2016-9-28 19:55

这个是nim的。不出意料的话,golang的代码也很简单。
  1. #2016年9月28日 19:49:31 codegay
  2. #nim log
  3. import math
  4. echo math.log2(16.0)
复制代码

作者: Bella    时间: 2016-9-28 19:55

回复 11# codegay


    如果只用到一小部分功能, 就用别的语言/工具代替了, 否则多浪费时间 ...
作者: codegay    时间: 2016-9-28 20:07

狗蓝的
在golang官网可以直接这个代码。
  1. package main
  2. import "fmt"
  3. import "math"
  4. func main() {
  5. fmt.Println("Hello, 世界")
  6. fmt.Println(math.Log2(16.0))
  7. }
复制代码

作者: happy886rr    时间: 2016-9-28 20:20

i工具
  1. i/shell lg2
  2. i/shell lga/lgb
  3. i/shell 5*(arctan(cos(sin(ln(lg(2.71828))))))
复制代码

作者: 523066680    时间: 2016-9-28 22:22

  1. Terminal>perl -e "print log(2), ' ' , 2^6"
  2. 0.693147180559945 4
复制代码

作者: 小白一个    时间: 2016-9-30 11:42

回复 5# Bella


    还是非常感谢你
作者: 小白一个    时间: 2016-9-30 11:46

好多高手,好多方法,感谢各位




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2