求助一下,用C语言求蒲丰(buffon)投针问题
具体问题是:平面上有一组间距相等的平行线,将一根针(长度与间距相等)任意掷在平面上,求此针与平行线相交的概率
我是用VS编写的,我的代码是
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define A 50
#define L 50
#define PI 3.14159265358979323846
double GetP(int n);
int main()
{
long int n;
float p=0;
printf("输入要投的针数:");
scanf_s("%d", &n);
GetP(n);
printf("P = %lf\n", p);
system("pause");
return 0;
}
double GetP(int n)
{
double p;
float distance, angle;//声明distance是距离,angle是角度
int i, count = 0;// i用作循环,count为相交的次数
srand(time(NULL));
for (i = 0; i < n; i++)
{
distance = rand() % (L+1) ;
angle = rand() % 91;
if (distance < (sin(angle * PI / 180) * (L / 2)))// 针的中心点到最近的平行线的距离小于针与平行线之间夹角的正弦乘以针长的一半,则代表针与平行线相交
{
count++;
}
}
p = (double)count / (double)n;//概率等于相交次数比上实验次数
return p;
}
可为什么输出的结果一直都是0呢 真心求教