Having trouble with the following question:

在几何形状中,圆周长与其直径的比率称为π . π的值可以从无限系列的形式估计:

π/ 4 = 1 - (1/3)(1/5) - (1/7)(1/9) - (1/11)......还有另一种计算π的新方法 . 想象一下,你有一个2平方的飞镖板 . 它刻有一个单位半径圆 . 圆的中心与正方形的中心重合 . 现在想象你随机地在飞镖板上投掷飞镖 . 然后,落入圆内的飞镖的数量与投掷的总飞镖的数量的比率与圆的面积与方形飞镖的面积的比率相同 . 单位半径的圆的面积仅为π平方单位 . 飞镖盘面积为4平方单位 . 圆的面积与正方形的面积之比为π/ 4 .

为了模拟投掷飞镖我们将使用随机数发生器 . Random模块具有几个可以使用的随机数生成函数 . 例如,函数uniform(a,b)返回a(包括)和b(不包括)范围内的浮点随机数 .

想象一下,方形飞镖盘上有一个坐标系 . 右上角有坐标(1.0,1.0),左下角有坐标(-1.0,-1.0) . 它的边长为2个单位,其中心(以及内切圆的中心)位于原点 .

飞镖板内的随机点可以通过其x和y坐标指定 . 使用随机数生成器生成这些值 . 我们实现这一目标的方式是:

xPos = random.uniform (-1.0, 1.0)

yPos = random.uniform (-1.0, 1.0)

要确定一个点是否在圆内,它与圆心的距离必须严格小于圆的半径 . 坐标(xPos,yPos)与中心的距离是math.hypot(xPos,yPos) . 圆的半径是1个单位 .

您将要编写的程序将被称为CalculatePI . 它将具有以下结构:

import math

import random

def computePI ( numThrows ):

...

def main ():

...

main()

函数main()将为给定数量的throws调用函数computePI() . 函数computePI()将通过为x和y坐标生成随机数来模拟dart的投掷 . 您将确定该随机生成的点是否在圆圈内 . 您将按照投掷次数指定的次数执行此操作 . 您将记录飞镖在圆圈内落地的次数 . 该计数除以总投掷数是比率π/ 4 . 然后函数computePI()将返回PI的计算值 . 在您的函数main()中,您想要进行实验,看看PI的准确性是否随着飞镖的投掷次数而增加 . 您将比较结果与math.pi给出的值 . 输出中的数量差异是PI的计算值减去math.pi.使用以下数量的投掷来运行您的实验 - 100,1000,10,000,100,000,1,000,000和10,000,000 . 您将使用这些数字作为输入参数调用函数computePI() . 您的输出将类似于以下内容,即您的计算PI和差异的实际值将不同,但接近显示的值:

Computation of PI using Random Numbers

num = 100 Calculated PI = 3.320000 Difference = +0.178407

num = 1000 Calculated PI = 3.080000 Difference = -0.061593

num = 10000 Calculated PI = 3.120400 Difference = -0.021193

num = 100000 Calculated PI = 3.144720 Difference = +0.003127

num = 1000000 Calculated PI = 3.142588 Difference = +0.000995

num = 10000000 Calculated PI = 3.141796 Difference = +0.000204

Difference = Calculated PI - math.pi

您的输出必须采用上述格式 . 投掷次数必须左对齐 . 计算出的π值和差值必须正确表示为六位小数 . 差异应该有加号或减号 . 阅读书中有关格式化的相关章节 .

Till now I have done:

import math

import random

def computePI (numThrows):

xPos = random.uniform (-1.0, 1.0)

yPos = random.uniform (-1.0, 1.0)

in_circle = 0

throws = 0

while (throws < numThrows):

if math.hypot (xPos, yPos) <= 1:

in_circle += 1

throws += 1

pi = (4 * in_circle) / numThrows

return pi

def main ():

throws = (100, 1000, 10000, 100000, 1000000, 10000000)

for numThrows in throws[0:7]:

main ()

I am having trouble calling the ComputePI function in the Main function. Also how do I print num with left indentation and ensure that all numbers have the required decimal space? Thank you!

Java随机生成_0--2π_使用随机数计算PI相关推荐

  1. java随机生成中文昵称_使用java随机生成中文姓名

    将字符串形式的名字转换为数组形式 private static String names= "碧凡.夏菡.曼香.若烟.半梦.雅绿.冰蓝.灵槐.平安.书翠.翠风.香巧.代云." + ...

  2. java 随机生成简单中文_用java语言实现随机生成中文姓名

    中文字符一般使用的编码格式为"GB2312",那么gb2312到底是什么,简单介绍一下(参考百度百科) GB2312 一般指信息交换用汉字编码字符集. <信息交换用汉字编码字 ...

  3. java 随机手机验证码_基于Java随机生成手机短信验证码的实例代码|chu

    简单版 /** * 产生4位随机数(0000-9999) * * @return 4位随机数 */ public static String getFourRandom() { return Stri ...

  4. java+生成手机验证码_基于Java随机生成手机短信验证码的实例代码

    简单版 /** * 产生4位随机数(0000-9999) * * @return 4位随机数 */ public static String getFourRandom() { return Stri ...

  5. Java随机生成Mac地址(GitHub源码下载)

    生成随机 Mac 地址 这段时间做项目,涉及到虚拟机 Mac 地址生成,网上找了一些 Java 随机生成 Mac 地址的代码,大多都是从 {'0', '1', '2', '3', '4', '5', ...

  6. java随机生成人名

    #java随机生成人名 /*** author:creator* date:2018/4/10*/package 随机生成人名;import java.io.BufferedReader; impor ...

  7. ChatGPT:java随机生成手机号码

    笔者:java随机生成中国手机号码 import java.util.Random;public class RandomPhoneNumGenerator {public static void m ...

  8. Java 随机生成 0-9a-zA-z 和 汉字 学习笔记

    Java 随机生成 0-9a-zA-z 和 汉字 导包 import org.apache.commons.lang3.RandomStringUtils; 代码 // 0-9a-zA-z 参数为字符 ...

  9. Java 随机生成4位数字验证码

    Java 随机生成4位数字验证码 import java.util.Random; /*** Created with IntelliJ IDEA.** @Author: twx* @Date: 20 ...

  10. 5.练习:猜数字:随机生成[0,100]之间的随机数,让用户猜生成的数字,显示猜大了还是猜小了,如果猜对了,提示共猜了多少次???

    5.练习:猜数字:随机生成[0,100]之间的随机数,让用户猜生成的数字,显示猜大了还是猜小了,如果猜对了,提示共猜了多少次??? 学习:第7遍 1.随机生成[0,100]之间的随机数 让用户猜生成的 ...

最新文章

  1. 交叉编译器工具链的使用
  2. 用户月活跃度在哪里可以查_2020年12月计算机等级考试报名时间,另外11月6号可以查9月考试成绩...
  3. bzoj 3224 普通平衡树 vactor的妙用
  4. 资源收集流程为SDN控制器
  5. zlggui菜单12864_lcddrive.h
  6. Django框架之DRF get post put delete 使用简单示例 (利用序列化反序列化)
  7. 快速搞懂ThreadLocal实现原理
  8. SAP Spartacus User Form里checkbox的设计原理
  9. jQuery的on绑定click和直接绑定click区别
  10. 【OpenCV】OpenCV实战从入门到精通之 -- 访问图像中的像素
  11. 《网络编程》守护进程
  12. 两种专家经验评分卡的学习
  13. 程序迭代时测试操作的要点(后端前端)
  14. pandas知识点(汇总和计算描述统计)
  15. github视频教程-02 建立项目仓库以及代码上传
  16. toshiba linux 打印机驱动的资料
  17. BZOJ 3224: Tyvj 1728 普通平衡树(替罪羊树)
  18. 教你如何免费使用云服务器
  19. UE4音乐的使用与优化
  20. 开发人员实用的在线工具

热门文章

  1. 小D课堂 - 零基础入门SpringBoot2.X到实战_第5节 SpringBoot部署war项目到tomcat9和启动原理讲解_23、SpringBoot2.x启动原理概述...
  2. 190728-flink官方文档阅读和实战记录
  3. 使用 urllib 构造请求对象
  4. 【转】解决“你没有权限访问,请与网络管理员联系”
  5. 支付宝新漏洞引发恐慌,那如何关闭小额免密支付呢
  6. socket 和 SocketServer 模块
  7. 在Azure Cloud Service中部署Java Web App(2)
  8. 几种调用WebService的方法
  9. 在个人机上发布web项目
  10. JavaScript开发者的工具箱