该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

这是一个用高斯公式,计算圆周率pi的代码,可惜我不会java,只能凭空想想百度自己写写,结果就是运行不了啊,求大腿

/*高斯公式 参考网址 http://www.cqvip.com/read/read.aspx?id=33099664

pi/4=12*arctan(1/18)+8*arctan(1/57)-5*arctan(1/239)

arctanx=x-x^3/3+x^5/5-x^7/7+...

这里的x相当1/18,1/57,1/239.

比如当精度1,只计算x-x^3/3时

x=1/18 1/18-(1/18)^3/3=0.055498399634202

x=1/56 0.01754205972508

x=1/239 0.0041840760018183

pi=(0.055498399634202*12+0.01754205972508*8-0.0041840760018183*5)*4=3.1415875736079

*/

package arct;

import java.math.*;

public class arct{

//高斯计算arctanx

public static BigDecimal arct(int a,int b){//方法arct计算arctanx,a为18,57,239等整数.b为精度

BigDecimal f=new BigDecimal(Integer.toString(1));//定义变量f,控制符号变量f

BigDecimal dd=new BigDecimal(Integer.toString(1));//定义变量dd

BigDecimal d = new BigDecimal( Integer.toString(a)); //改变a的值类型

BigDecimal b1= new BigDecimal(Integer.toString(1)); //定义一个初始值为1的变量,用来当分母初始值

BigDecimal d2=b1.multiply(d);//定义d2的值为x每次多的次方x^2

BigDecimal r=d;//定义r,最后作为返回结果

int i=1;

for (i = 1; i <= b; i++) {//循环控制精度

b1=b1.add(new BigDecimal(Integer.toString(2)));//分母值每次+2

d=d.multiply(d2);//分子值每次乘以d2(x^2)

dd=d.multiply(b1);//2者相乘

if( i%2 == 1){//if语句改变运算符号

f=new BigDecimal(Integer.toString(-1));

}

else if ( i%2 == 0){

f=new BigDecimal(Integer.toString(1));

}

dd=f.divide(dd);//根据符号变量f,f控制符号的同时作分子

r=r.add(dd);

}

return r;}

public static void main(String[] args) {

//高斯pi/4=12*arctan(1/18)+8*arctan(1/57)-5*arctan(1/239)

Long startTime = System.currentTimeMillis();

BigDecimal d1=arct.arct( 18,100);//调用arctg方法计算arctanx

BigDecimal d2=arct.arct(57,100);

BigDecimal d3=arct.arct(239,100);

d1=d1.multiply(new BigDecimal(Integer.toString(48)));//高斯公式arctan前的系数

d2=d2.multiply(new BigDecimal(Integer.toString(32)));

d3=d3.multiply(new BigDecimal(Integer.toString(20)));

BigDecimal p=new BigDecimal(Integer.toString(0));//定义pi

p=d1.add(d2);

p=p.min(d3);

System.out.println(p); //输出pi

Long endTime = System.currentTimeMillis();

System.out.println(endTime - startTime);//输出程序运行时间

}}

java+卡有型号吗,第一次写java代码,就卡主了,真是惨,有木有大腿来帮忙调试一下...相关推荐

  1. java调用clang编译的so_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实

    好奇害死羊 很多小伙伴们做Java开发,天天写Java代码,肯定离不开Java基础环境:JDK,毕竟我们写好的Java代码也是跑在JVM虚拟机上. 一般来说,我们学Java之前,第一步就是安装JDK环 ...

  2. vscode写java没有提示_VS Code报错Language Support for Java(TM)插件显示需要JDK11 写java代码没有提示...

    鉴于IDEA的打开速度(电脑的垃圾),平常刷LeetCode都是在VSCode上,结果这几天老是打开给我报错 Java 11 or more recent is required to run. Pl ...

  3. vim java 编程_你也用Vim写Java代码?

    献给所有曾试图写Java而痛苦挣扎的Vimers, 请不要害怕, 我也是你们的一员 序 文章源起于segmentfault论坛中的一个问题, 由于回答的有点尽性, 便转为文章. 题主应该是个Vim初学 ...

  4. Jmeter的Java脚本往Kafka里传数据(SASL认证)——记第一次写JAVA的Jmeter脚本,超详细。

    需求:需要使用jmeter往Kafka里压大量的数据. 这里使用java写一个工具也可以实现,但是之前没自己写过Jmeter脚本.整体的思路就是继承AbstractJavaSamplerClient类 ...

  5. 【图文详解】第一个Java程序HelloWorld详解,写Java程序需要注意什么

    1.先写第一个HelloWorld程序,输出语句 "HelloWorld!!! ",并编译运行. public class HelloWorld{ //声明定义一个类,类型为共有的 ...

  6. 超方便、最简单版本:java 邮件发送 (半分钟写完代码)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. jar 和 邮箱设置 <!--邮件--><dependency>< ...

  7. java 百度爬虫_零基础写Java知乎爬虫之先拿百度首页练练手

    上一集中我们说到需要用Java来制作一个知乎爬虫,那么这一次,我们就来研究一下如何使用代码获取到网页的内容. 首先,没有HTML和CSS和JS和AJAX经验的建议先去W3C(点我点我)小小的了解一下. ...

  8. matlab卡农,又用Mathematica写了一段卡农

    你能在这里听到它 用数学软件演奏音乐早已不是什么新鲜事,很早就有人用Matlab弹奏卡农或是最炫民族风,最近我知道还有人用无理数生成一段音乐,很有趣.而我选择用Mathematica弹奏卡农是因为卡农 ...

  9. Python第一次写的代码

    #!/bin/bash/env python # -*- coding:utf-8 -*- #function:输出1-10每隔1秒import time start = 1 flag = True ...

最新文章

  1. 使用boost解析域名服务
  2. R语言生存分析COX回归分析实战:以乳腺癌数据为例
  3. 跟我做CVS版本管理试验
  4. 浅析Python中深拷贝和浅拷贝
  5. elementUI之switch应用的坑
  6. LeetCode 2094. 找出 3 位偶数
  7. 更换mysql_3分钟学会mysql数据库的逻辑架构原理
  8. Redis面试 - redis 的并发竞争问题是什么?
  9. python的编程方式模块化_我的Python笔记·模块化编程(一)
  10. 服务器机柜内手机信号,手机信号强度是什么
  11. NYOJ241 - 字母统计
  12. CreateInstance 方法解析
  13. R语言 rgl plot3d函数
  14. JAVA,OpenCV简单实现“全能扫描王”的功能
  15. GLOG中的(Verbose Logging)VLOG的使用
  16. 让人拍案叫绝的创意都是如何诞生的
  17. 分享支持一站式查快递单号查询物流信息
  18. 移动硬盘 linux找不到,求助!linux对usb设备的接入应该是自动的吧,我的移动硬盘找不到...
  19. android输入法开发软件,开发安卓系统Android和码输入法软件的全过程(二)
  20. 【JavaScript】JS取余及取商(一)

热门文章

  1. creo扫描选择多条链作为轨迹_ProE/Creo圆轨迹可变扫描法创建弧顶面,用上便爱上(一)...
  2. android string 转成json对象_Android开发:生成桌面快捷方式是这样做的
  3. 郑州计算机单招学校有哪些专业,郑州单招的学校有哪些专业
  4. Cache相关基本概念理解
  5. OS / 5 种 IO 模型
  6. ESP32-S3芯片与ESP32及ESP32-S2比较好在哪里呢?官方到目前还没有任何信息发布,我们先来猜看都会有哪些性能的提升
  7. uniapp怎么引入css_Uniapp怎么引入外部js
  8. 如何做好Code Review
  9. html5手机网站照片查看器,HTMLayout仿Picasa照片查看器效果
  10. axios post body参数_09-axios