我试图用蒙特卡罗方法计算PI.无论MAXLEN有多大,我的代码都会给出结果3.000.经过多次调试后,我无法得到我做错的事.
#include <stdio.h>
#include <stdlib.h>
#define sqr2(x) ((x)*(x))
#define frand() ((double) rand() / (RAND_MAX))
#define MAXLEN 1000
int circumscribed(int radius){
float xcoord = frand();
float ycoord = frand();
float coord = sqr2(xcoord) + sqr2(ycoord);
if(coord <= radius)
return 1;
return -1;
}
int main()
{
int i;
int circles = 0, rect = 0;;
for(i = 0; i < MAXLEN; i++)
{
if(circumscribed(1) > 0) // if(circumscribed(1)) shoul be enough but it doesn't work. Very odd in my opinion.
circles++; …Run Code Online (Sandbox Code Playgroud) 以下正则表达式之间有什么区别.对我来说,他们都是一样的
[a-z][a-z]* VS [a-z]+[a-z][a-z]* VS [a-z]*[a-z]