我有一个由三部分组成的作业,我知道该怎么做,只是这样做很容易混淆。我一直想弄清楚如何为 B部分(我理解A部分)编写这段代码。
A)使用循环生成10到20(含10)之间的1000个随机整数。找到您的1000个随机整数的平均值。应该接近15。
import random
from random import randrange
def main():
numbers = []
for count in range(1000):
number = random.randrange(10,21)
numbers.append(number)
print(sum(numbers)/len(numbers))
main()
B)假定赛道长2英里。您的马匹在一秒钟内最多可以跑40英尺,但是对于任何给定 秒可以跑4到40之间的任意数量的英尺。 您的程序应具有一个循环,该循环可在每秒结束时计算马的位置,直到马 越过终点线。每秒生成一个随机整数并将其添加到马匹的当前位置。 输出应为完成比赛所需的秒数。
到目前为止,我知道应该做什么(这是我的概述),我只是不知道如何编写代码:
我知道1英里是5280,所以2英里是10560。
我知道给定秒数的范围是[4,41)。
def race():
#position variable
#position variable
#while loop condition
#increment seconds
#add random value to position
#return elapsed seconds
我可以做C部分,要求参加1000场比赛和平均2秒钟才能完成比赛。
答案 0 :(得分:0)
您正在寻找答案。我不会为您解决问题,但是这是我追求的目标。
您的while循环需要检查并查看您是否越过终点线,所以
// proper spacing and indentations makes the code easier to read thus more maintainable.
// Also, Always specify the columns list in an insert statement.
var tsql = @"INSERT INTO CAMADA (id, team, shift, starttime, jobdate, pm)
VALUES (@id, @team, @shift, @starttime, @jobdate, @pm)";
// use the using statement to ensure the SqlConnection is closed and disposed when done.
// This is important not only because it's an IDispsable, but also because that
// if you don't dispose it, the connection will not return to the connection pool
using(var cn = new SqlConnection("**CONNECTION STRING IS WORKING FINE, CHECKED**"))
{
// SqlCommand is also an IDisposable
using(var cmd = new SqlCommand(tsql,cn))
{
// CommandType.Text is the default, no need to set it explicitly
// Use parameters to avoid all kinds of nasty stuff like SQL injection,
// but also having to handle DateTime string literals formats
cmd.Parameters.Add("@id", SqlDbType.Int).Value = id;
cmd.Parameters.Add("@team", SqlDbType.Int).Value = team;
cmd.Parameters.Add("@shift", SqlDbType.Int).Value = shift;
cmd.Parameters.Add("@starttime", SqlDbType.DateTime).Value = starttime;
cmd.Parameters.Add("@jobdate", SqlDbType.DateTime).Value = jobdate;
// Of course, the size is also a guess...
cmd.Parameters.Add("@pm", SqlDbType.VarChar, 2).Value = pm;
cn.Open();
cmd.ExecuteNonQuery();
}
}
然后,每秒钟,您需要增加时间while finished is False:
if race_total_distance - distance_so_far <= 0:
finished = True
# record your race results
else:
# do your race calcs here and go again
并添加到此段脚的+= 1
变量中,您已经演示了如何做。
答案 1 :(得分:0)
虽然感觉很像为您做家庭作业,但您还是来了。 如果您再次遇到这样的问题,请尝试将注释一步一步地“翻译”为代码-差不多完成了。
def race()
goal = 10560 # 2 miles are 10560 feet
current_position = 0 # position variable
elapsed_seconds = 0 # time variable
while current_position < goal: # while loop condition
elapsed_seconds += 1 # increment seconds
current_position += random.randrange(4,41) # add random value to position
return relapsed_seconds
答案 2 :(得分:0)
这可以通过for循环来完成,只需跟踪current_pos
和时间
import random
lista = [random.randint(10, 20) for i in range(1000)]
avg = sum(lista)/len(lista)
track = 2 * 5280
current_pos = 0
seconds = 0
while current_pos <= track:
current_pos += random.randint(4, 40)
seconds += 1
print('{} seconds to finish the race'.format(seconds))
# 492 seconds to finish the race