临近期末,请勿抄袭代码,维护公平!

5505: Alice与圆周率π 分享至QQ空间

Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
Total Submit: 130            Accepted:52 Special Judge

Description

1777年,法国数学家布丰(Georges Louis Leclere de Buffon,1707~1788)提出用投针实验的方法求圆周率π。

投针实验的步骤是:

1) 取一张白纸,在上面画上许多条间距为a的平行线。

2) 取一根长度为L(L≤a) 的针,随机地向画有平行直线的纸上掷n次,观察针与直线相交的次数,记为m。

3)计算针与直线相交的概率。

18世纪,法国数学家布丰提出的“投针问题”,记载于布丰1777年出版的著作中:“在平面上画有一组间距为a的平行线,将一根长度为L(L≤a)的针任意掷在这个平面上,求此针与平行线中任一条相交的概率。”

布丰本人证明了,这个概率是:

 p=2L/π/a(其中π为圆周率)

由于它与π有关,于是人们想到利用投针试验来估计圆周率的值。

布丰惊奇地发现:有利的扔出与不利的扔出两者次数的比,是一个包含π的表示式.如果针的长度等于a/2,那么有利扔出的概率为1/π.扔的次数越多,由此能求出越为精确的π的值。

现代计算机有Monte Carlo method(蒙特卡罗方法),可以理解为用计算机去解决这个问题。

我们可以随机生成10000个点(随机的点都要在正方形内,包括正方形上),落在半径为r的圆内(包括圆上)的点可以表示圆的面积,落在边长为2r的正方形内(包括正方形上)的点为正方形的面积,然后可以求得π。

1584800466549070919.jpg

如上图所示,假设我们所做实验的正方形为20*20,圆的圆心为平面直角坐标系内点(10,10),圆的半径为10。请你帮忙完成蒙特卡罗方法的实验,告诉Alice你随机记录下的10000个点的坐标。

Input

本题没有输入,为spj(Special Judge)。

Output

输出10000行,每行为一对点的坐标点(x,y),x和y之间用空格隔开。

Sample Input

Sample Output

Hint

随机输出任意一组你记录的点即可,随机函数可以这样书写。

//使用当前时间作为随机数种子

srand(time(0)); 

//随机生成一大小为0至RAND_MAX(OJ为32767)之间的随机数值存储至x

int x=rand();

Source

2020年常熟理工学院第一届线上ACM选拔赛热身赛

Uploader

BobHuang


[Submit] [Status]

|Back |   | Top|
Copyright @ 2008-2022(浙ICP备2022001332号), TZOJ. All Rights Reserved.