❶ 怎样编个c语言程序计算圆周率
用蒙特卡罗算法就行,生成N多个随机坐标落在1×1的方格里,统计x平方+y平方1000)就好。。详细代码见前面的网址。。
❷ 用C++模拟投针法计算圆周率
shiyanpi=2*zhenchang*cishu/(jianju*j);
改成
shiyanpi=2*zhenchang*i/(jianju*j);
❸ C语言计算圆周率
#include<stdio.h>
#include<math.h>
intmain(){
doublep=0,q=0;
inti;
for(i=1;;i++){
p+=6*1.0/(i*i);
q+=4*1.0*pow(-1,i+1)/(2*i-1);//q后面少一个+
if(fabs(sqrt(p)-q)<1e-6)
break;
}
printf("PIis%lf,项数为%d",q,i);
return0;
}
❹ C语言求圆周率
#include<stdio.h>
intmain()
{
floatf;
doublepi,i,sign;
while(scanf("%f",&f)==1)
{
pi=0;
i=1;
sign=1;
do
{
pi+=sign*1.0/i;
}while(1.0/i>=f&&(sign=-sign)&&(i+=2));
printf("%lf ",pi*4.0);
}
return0;
}
❺ C++用投针法算圆周率,求大神帮帮忙
代码如下:
#include<iostream>
#include<fstream>
#include<math.h>
usingnamespacestd;
doublerandx,randnum;
unsignedlongrandi=1;
constunsignedlongranda=16807;
unsignedlongrandm=pow(2,31)-1;
constdoublepi=3.1415926;
//randomnumbercreation
voidrandom_number()
{
if(randi==randm)
{
randi=randm-1;
}
randi=(randa*randi)%randm;
randx=randi;
randnum=randx/randm;
return;
}
//programmain
voidmain(void)
{
FILE*fp9;
fp9=fopen("mypi.dat","w+");
doublejianju;
doublezhenchang;
doubleminjuli;
doublehu;
doubleshiyanpi;
intcishu;
inti;
intj=0;
cout<<"请输入投针次数"<<" ";
cin>>cishu;
cout<<"请输入平行线间距"<<" ";
cin>>jianju;
cout<<"请输入针的长度"<<" ";
cin>>zhenchang;
for(i=1;i<=cishu;i++)
{
random_number();
minjuli=randnum*jianju/2;
random_number();
hu=randnum*pi;
if(minjuli<=zhenchang/2*sin(hu))
j++;
shiyanpi=2*zhenchang*i/(jianju*j);
if(i%1000==0)
fprintf(fp9,"%d%15.6f ",i,shiyanpi);
}
}
希望能帮到你!望采纳!
❻ 求用C语言计算蒲丰氏投针计算圆周率
clear
a=1;%
设置两条平行线之间的距离
l=0.6;%
投针的长度
counter=0;%
针与平行线相交的次数
n=10000000;%
投掷次数
x=unifrnd(0,a/2,1,n);%产生n个(0,a/2)之间均匀分布的随机数,这里a/2是投针的中点到最近的平行线的距离
phi=unifrnd(0,pi,1,n);%
产生n个(0,pi)之间均匀分布的随机数,这里pi是投针到最近的平行线的角度
for
i=1:n
if
x(i)<l*sin(phi(i))/2
%
只要x小于l*sin(phi(i))/2,则相交
counter=counter+1;
end
end
frequency=counter/n;
%
计算相交的频率,即相交次数比总次数
pi=2*l/(a*frequency)
%
从相交的频率总求的pi
%运行结果
>>
test
❼ 用c语言计算圆周率
#include<math.h>
main()
{
float pi=0,t=1;
int i=1;
do
{
t=1/(float)(2*i-1);
if(i%2==0) t=-t; /*printf("%d ",t);*/
pi+=t;
i++;
}while(fabs(t)>0.00001);
printf("pi=%f\n",4*pi);
getch();
}
❽ C语言 圆周率
因为圆面积s=pi*r^2,
所以pi=s/r^2.
点(x,y)是0~1正方形范围内的随机点,如果x^2+y^2<=1,则该点在单位圆内.
x^2+y^2就是r^2,即圆半径的平方.d/N为点x,y落入单位圆内的概率,即约为圆面积.
圆的半径为1/2,而不是1,所以pi=4*d/N.
❾ C语言/C++用投针法计算圆周率
代码如下:
#include<iostream>
#include<fstream>
#include<math.h>
usingnamespacestd;
doublerandx,randnum;
unsignedlongrandi=1;
constunsignedlongranda=16807;
unsignedlongrandm=pow(2,31)-1;
constdoublepi=3.1415926;
//randomnumbercreation
voidrandom_number()
{
if(randi==randm)
{
randi=randm-1;
}
randi=(randa*randi)%randm;
randx=randi;
randnum=randx/randm;
return;
}
//programmain
voidmain(void)
{
FILE*fp9;
fp9=fopen("mypi.dat","w+");
doublejianju;
doublezhenchang;
doubleminjuli;
doublehu;
doubleshiyanpi;
intcishu;
inti;
intj=0;
cout<<"请输入投针次数"<<" ";
cin>>cishu;
cout<<"请输入平行线间距"<<" ";
cin>>jianju;
cout<<"请输入针的长度"<<" ";
cin>>zhenchang;
for(i=1;i<=cishu;i++)
{
random_number();
minjuli=randnum*jianju/2;
random_number();
hu=randnum*pi;
if(minjuli<=zhenchang/2*sin(hu))
j++;
shiyanpi=2*zhenchang*i/(jianju*j);
if(i%1000==0)
fprintf(fp9,"%d%15.6f ",i,shiyanpi);
}
}
希望能帮到你!望采纳!
❿ 把你编的用c语言计算蒲丰氏投针计算圆周率的发给我啊 紧急求助 非常感谢
#include<stdio.h>
#include<math.h>
void main(){
int s; float n,t,pi;
t=1;pi=0;n=1.0; s=1;
while(fab(t)>le-6)
{pi=pi+t;
n=n+2;
s=-s;
t=s/n;
}
pi=pi*4;
printf("pi=%10.6d\n",pi);
}