java的圆周率_java学习日记,圆周率的打印
前段时间看到听说学习java每天写技术贴会对自己提升很大,我现在学习java也就2个周,算不上技术贴,就写写学习日记吧。
昨天师傅给我出了一道题,说是试试用java打印圆周率。
刚开始我的思路是,如果一个多边形的边数无限多,那么这个多边形就会无限靠近一个圆,那么用周长除以这个多边形的对角线就得到了圆周率的大概值,如果边数越多,那么得到的圆周率就越精确。
刚开始研究了老半天,最后一直找不到在边数增多的情况下,每条边的长度和对角线长度的对应关系。后来无奈,只有上网查了老祖宗祖冲之及其各个外国友人的祖宗的一系列方法,最后拿到这个这个数学公式pi/4=1/1-1/3+1/5-1/7+1/9-1/11...
最后决定用程序把他写出来,想法步骤如下:
1.想办法简化这个数学公式,容易让程序写出来,简化公式得到如下
pi/4=2/1*3+2/5*9+2/11*13.....
也就是当i为0 2 4 6 8
10的时候用(2*i+1)*(2*(i+1)+1)可以得到1*3,5*9,11*13这样的公式
等式右边,分子始终是固定的,2;分母则是奇数每两个相乘。
圆周率的四分之一则等于所有的分式相加的和,分数越多,结果则越靠近圆周率。
2.那么,程序代码步骤大概如下
1)定义加多少次分数乘以二。
2)定义分子。
3)因为pi是一个相加的结果,定义变量pi,并初始化为0.0
4)当i为0 2
4 6
8的时候,也就是i对2求余等于0的时候,把(2*i+1)*(2*(i+1)+1)赋值给分母
5)将pi加上分子除以分母的值赋值给pi,一直循环4
5,循环次数越多得到的pi的值越精确
6)因为得到的值是pi的四分之一,所以打印的时候,将结果乘以4就是我们算出来的圆周率的值。
附上代码:
java打印圆周率代码
最后发现一个问题,当分数累加和到达20000个之后,圆周率又开始不准确了,没有找到解决的办法。看看在以后的学习中是否找到更好的方法。
java的圆周率_java学习日记,圆周率的打印相关推荐
- java中怎么引用圆周率_Java简单计算圆周率完整示例
本文实例讲述了java简单计算圆周率.分享给大家供大家参考,具体如下: 这两天在网上看到一个题,已知pi可以用函数4 * (1 – 1/3 + 1/5 – 1/7 + -) 计算,计算出小数点后五位( ...
- java 计算圆周率_java程序计算圆周率
昨晚波士堂看到王兴背诵圆周率,感到有兴趣了,于是下个txt,圆周率100万位开始背诵,太辛苦,代码实现出来继续背. package com.xjtu.pi; /** * π的随机数算法 * 描述: * ...
- java怎么做复式表格_Java学习日记(一)基础
标识符: 由26个英文字母大小写,数字:0-9 符号:_ $ 组成 定义合法标识符规则: 1.数字不可以开头. 2.不可以使用关键字. 3.Java中严格区分大小写. Java中的注释格式: 单行注释 ...
- java求2到100内的素数_java学习日记-基础-列出2~100内的素数
素数的概念:一个整数如果只能整除1和它本身,那么这个整数就是一个素数 方法一:素数是除去能被2整除.3整除.5整除.7整除的整数,但包含2,3,5,7 public classSushu {publi ...
- android xml java混合编程_Java学习中注解与多线程,网络编程与XML技术
本部分内容主要有集合框架及泛型,实用类,输入和输出处理,注解与多线程,网络编程与XML技术.初次学习这部分会感觉很难,主要是概念难于理解,最好是多看看例子,多练习.下面是个人的总结 拉勾IT课小编为大 ...
- java helloworld代码_java学习应用篇|逃不掉的HelloWorld
本文知识点 1.表白不是发起进攻的冲锋号,而是吹响胜利的号角 2.除了爱情不讲道理,公理也不讲道理 3.这世界,离了javac,也是可以运行的! 4.Hello,寺水 写程序并不是写代码 看前面啰啰嗦 ...
- java自学难点_java学习重难点
三人行必有我师,人生是需要不断学习的,在这里我们相遇就是缘分,希望各位可以看完这篇文章,也欢迎大家在下面留言讨论,天冷了,也动动手指转发收藏一下,谢谢大家! 在Java中修饰符总共有一下几种: 1.访 ...
- java 内存类_Java学习——类的生命周期和内存
常识是本能,有足够的常识便是天才.--肖伯纳 一.类的生命周期 类的生命周期:1.加载:将二进制流加载进来.class 2.连接: 验证:确保加载进来的数据不会损害虚拟机 准备:为类变量分配内存,附默 ...
- 学习java的步骤_java学习的基本步骤
Java是一个通用的编程语言,其实可以干很多事,怎么学Java就看怎么用了.但有一些基本的步骤: 熟悉一种文本编辑器, 比如:Vim, Emacs, Notepad++, TextMate等.知道哪些 ...
最新文章
- 图灵九月书讯 ——金秋时节推荐给程序员们的书
- proDAD Erazr
- android 筛选控件_Flutter学习六之实现一个带筛选的列表页面
- 资源 | Deeplearning.ai课程与笔记汇总
- java treemap_Java TreeMap lastKey()方法与示例
- ICCV 2021 | 带你了解微软亚洲研究院CV领域前沿进展
- 不小心运行了一个***程序~word 2003 打开2007格式文件的转换器.rar 里的
- 安装Cocoapods, 更新gem出现的问题
- 语法分析(3)...
- 一句代码搞定权限请求,从未如此简单
- smote算法 不平衡数据集处理方法
- Windwos tar 命令详解
- 二分法求解方程的根java_【数值分析】利用二分法和牛顿公式求解方程的根
- 公众号封面图内容数据提取软件
- 多进程中之文件描述符继承的消除
- java给word表格追加行_Java 使用Spire.Cloud.Word给Word文档添加表格
- html中鼠标点击效果的制作,用CSS实现鼠标单击特效-网页设计,HTML/CSS
- 三子棋小游戏(经过轻微改编可变为五子棋)
- Webdriver - webdriver hangs when get or click
- 【GDOI2016模拟3.10】习用之语
热门文章
- php new对象 调用函数,关于JS中new调用函数的原理介绍
- 圆柱体积怎么算立方公式_【六年级数学微课】巧算圆锥的体积
- python 程序开发以及推荐机制设计
- tf.Variable()、tf.get_variable()
- MySQL给用户设置密码(修改密码)、创建用户,grant为某个IP、某个网段或所有IP地址创建访问用户并授权
- 华为12月份鸿蒙适配mate40,华为:Mate40系列在12月可优先升级鸿蒙系统
- J.U.C系列(五)BlockingQueue的使用
- java中实现将十六进制按位取反
- 在java中将数据信息写入本地文本(1)
- 史上最详细Docker安装Elasticsearch、ik分词器、可视化工具,每一步都带有步骤图!!!