I'm trying to generate a random path from the center of a circle and count how many steps it takes to exit the circle, my programming language is python 2.7. I've imported random and numpy.
我写了一些伪代码来帮助我记住我想要完成的事情:
Start at center of circle
Keep track of step count
Step distance=1 step
Radius of Circle=500 steps
While location<500 steps from center:
take=1 step in random angle direction
continue while loop
How many steps?
我在使用此代码的每个部分时遇到问题。我不知道从哪里开始 我想我必须附加一个数组,以便我知道何时退出圆圈但我不知道如何跟踪我的坐标。
的更新 的
这是我到目前为止编写的代码,它将在我进行更改时更新:
#Start code
#Import modules
import numpy
#Define constants
r=500
step=1
step_count=0
#Defining origin in circle
x=0
y=0
#While inside the circle
while (x**2+y**2)**(1./2.)<=r:
x_step=step*numpy.cos(numpy.random.beta(0.,2.,1./180.)
y_step=step*numpy.sin(numpy.random.beta(0.,2.,1./180.)
x+=x_step
y+=y_step
step_count+=1
#Print answer
print step_count
要纠正的事情:
SyntaxError:语法无效
答案 0 :(得分:0)
所以,你几乎就在那里。
这是一个只使用math
的解决方案。 (也是python3)
import math, random
#Define constants
r = 500
step = 1
#define state
step_count = 0
#Defining origin in circle
x=0
y=0
#While inside the circle
while (x**2 + y**2)**(1./2.) <= r:
angle = 2 * math.pi * random.random()
x_step = step * math.cos(angle)
y_step = step * math.sin(angle)
x += x_step
y += y_step
step_count += 1
#Print answer
print(step_count,x,y)
示例输出:
433126 65.02643317539659 495.86845856661375
请注意我曾经计算过一次随机角度并用它来计算一个步骤。
答案 1 :(得分:0)
我不想让这个帖子没有答案。这是我最终代码的一个例子:
string json = "{\"CallResult\":[{\"CompanyId\":\"AAA900134-904\",\"CompanyName\":\"MID\"}]}";
JavaScriptSerializer js = new JavaScriptSerializer();
var callres = (CallResultClass)js.Deserialize(json, typeof(CallResultClass));
var companyInfo = callres.CallResult;
非常感谢所有回答的人,特别是@quamrana