
一个VB语言小程序如何转化成mathematic语言。。。 程序如下:
constpi=3.14159265358979Randomize(Timer)Fori=1To10000a1=Rnd*2*pia2=Rnd*2*pix1=Cos(a1)...
const pi=3.14159265358979
Randomize(Timer)
For i=1 To 10000
a1=Rnd*2*pi
a2=Rnd*2*pi
x1=Cos(a1)
y1=Sin(a1)
x2=Cos(a2)
y2=Sin(a2)
s=(x1-x2)^2+(y1-y2)^2
If s>3 Then s=s+1
Next i
p=s/i
print"p=";p
运行程序 p=0.3333---
我自己写了个mathematic 程序,但是运行之后结果不是上面的结果,高手解答下啊,该怎么写呢?????,非常急求!! 展开
Randomize(Timer)
For i=1 To 10000
a1=Rnd*2*pi
a2=Rnd*2*pi
x1=Cos(a1)
y1=Sin(a1)
x2=Cos(a2)
y2=Sin(a2)
s=(x1-x2)^2+(y1-y2)^2
If s>3 Then s=s+1
Next i
p=s/i
print"p=";p
运行程序 p=0.3333---
我自己写了个mathematic 程序,但是运行之后结果不是上面的结果,高手解答下啊,该怎么写呢?????,非常急求!! 展开
1个回答
展开全部
我不懂VB,你敢用C语言写不?我大概猜测你的那些语句顺序,写成Mathematica程序如下:
Calc[]:=Module[{a1,a2,x1,x2,y1,y2,i,p,s},
SeedRandom[];
For[i=1,i<1000,i++,
a1=Random[]*2Pi; a2=Random[]*2Pi; x1=Cos[a1];
y1=Sin[a1]; x2=Cos[a2]; y2=Sin[a2];
s=(x1-x2)^2+(y1-y2)^2;
If[s>3, s=s+1];
];
p=s/i;
Print["p=",p];
]
主要是你的那个If是不是在For内部?还有Rnd随机多少?你自己看着改吧。不懂VB。
Calc[]:=Module[{a1,a2,x1,x2,y1,y2,i,p,s},
SeedRandom[];
For[i=1,i<1000,i++,
a1=Random[]*2Pi; a2=Random[]*2Pi; x1=Cos[a1];
y1=Sin[a1]; x2=Cos[a2]; y2=Sin[a2];
s=(x1-x2)^2+(y1-y2)^2;
If[s>3, s=s+1];
];
p=s/i;
Print["p=",p];
]
主要是你的那个If是不是在For内部?还有Rnd随机多少?你自己看着改吧。不懂VB。
追问
thanks~!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询