找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 78387|回复: 17

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

[复制链接]
发表于 2016-9-28 16:36:52 | 显示全部楼层 |阅读模式
本帖最后由 小白一个 于 2016-9-30 11:46 编辑

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

网上百度了好久,也没有找到,有像C和JAVA哪种现有的公式直接调用么?
发表于 2016-9-28 17:05:40 | 显示全部楼层


“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. >>>
复制代码

评分

参与人数 1技术 +1 收起 理由
小白一个 + 1 感谢答复,python的程序已实现了,现在想用 ...

查看全部评分

发表于 2016-9-28 18:35:32 | 显示全部楼层
麦克劳林级数,稍加变化,增加收敛速度,用批处理可以实现,就是精度上不去,你要计算小数点后数万位的log,只能用C语言,C是是最快的。
 楼主| 发表于 2016-9-28 19:09:39 | 显示全部楼层
麦克劳林级数,稍加变化,增加收敛速度,用批处理可以实现,就是精度上不去,你要计算小数点后数万位的log, ...
happy886rr 发表于 2016-9-28 18:35



    我只要计算可控范围内的数字就行了,不需要计算那么多位,但不知道如何操作

评分

参与人数 1PB -4 收起 理由
pcl_test -4 指定回应某楼层的在相应楼层点回复,少引用

查看全部评分

发表于 2016-9-28 19:17:23 | 显示全部楼层
外部命令: http://batch-cn.qiniudn.com/tool/bc.exe
我在linux下用没什么问题, win下跑log就退出, 不知道什么原因
发表于 2016-9-28 19:23:50 | 显示全部楼层
回复 5# Bella


    好像是去sf上下载。可能是bcn打包的一些文件不全。
发表于 2016-9-28 19:28:23 | 显示全部楼层
本帖最后由 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
复制代码

评分

参与人数 1技术 +1 收起 理由
小白一个 + 1 高手,膜拜啊

查看全部评分

发表于 2016-9-28 19:39:22 | 显示全部楼层

模仿版主的,来一发python版

  1. for /f %a in ('python -c "print(__import__(""math"").log(16,2))"') do echo;%a
复制代码

评分

参与人数 2技术 +2 收起 理由
小白一个 + 1 这个也很厉害,我现在也在学习python,刚好 ...
happy886rr + 1 py木马屠城

查看全部评分

发表于 2016-9-28 19:39:26 | 显示全部楼层
回复 5# Bella

瑞士军刀
  1. gawk "BEGIN{print 2^4}"
  2. gawk "BEGIN{print log(16)/log(2)}"
复制代码
发表于 2016-9-28 19:44:59 | 显示全部楼层
回复 9# pcl_test


    之前看到的笑话, 学了python, ruby后发现awk最装x, 一行流
awk至今不会, 去年看手册看不下去了, 用cut更简单
发表于 2016-9-28 19:48:16 | 显示全部楼层
回复 10# Bella


    你还应该去学学perl
发表于 2016-9-28 19:55:49 | 显示全部楼层
这个是nim的。不出意料的话,golang的代码也很简单。
  1. #2016年9月28日 19:49:31 codegay
  2. #nim log

  3. import math
  4. echo math.log2(16.0)
复制代码
发表于 2016-9-28 19:55:55 | 显示全部楼层
回复 11# codegay


    如果只用到一小部分功能, 就用别的语言/工具代替了, 否则多浪费时间 ...

评分

参与人数 1技术 +1 收起 理由
codegay + 1 1

查看全部评分

发表于 2016-9-28 20:07:52 | 显示全部楼层
狗蓝的
在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. }
复制代码
发表于 2016-9-28 20:20:31 | 显示全部楼层
i工具

  1. i/shell lg2
  2. i/shell lga/lgb
  3. i/shell 5*(arctan(cos(sin(ln(lg(2.71828))))))
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:29 , Processed in 0.023091 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表