나는 지난 몇 주 동안이 작업을 수행하려고 노력 해왔고 코드를 망쳤지만 아무 것도 도움이되지 않습니다. 나는 총 강우량, 평균 강우량 및 12 일 이상의 가뭄과 5 일 이상의 홍수가 6 인치 이상인 비가 있는지 확인하는 데 어려움을 겪고 있습니다. 도와주세요. 나는 파이썬 3.3에서 이것을하고있다. 그리고 저는 108 일 동안 그리고 1 세기 동안 시뮬레이션을하고 있습니다. 나는 정말로 약간의 도움에 감사 할 것이다. 이 프로그램을 실행할 때 totalRain에 대한 숫자를 얻지 만 합산 된 강우량은 아닙니다. 홍수와 홍수 부분에 대해 if 문을 사용한다고 가정합니다. 그러나 어떻게해야할지 모르겠습니다. 가뭄으로 비가 내리는 12 일 이상 가뭄이 있었는지를 보여줄 필요가 있습니다.파이썬에서의 강우량 시뮬레이션
import random
import math
def rainFallAmount(x):
if chance<=0.71:
rainfall=0;
elif chance<=0.78:
rainfall=0.5;
elif chance<=0.85:
rainfall=0.75;
elif chance<=0.92:
rainfall=1.0;
elif chance<=0.98:
rainfall=1.5;
else:
rainfall=2.0;
return rainfall;
totalRain = 0;
day=109;
num_days_no_rain = 0; # max_days_without_rain
days_of_drought = 0; # days_not_raining
days_over15 = 0;
days_rained = 0;
years = 100;
#last_5_days = [0, 0, 0, 0, 0];
days = 36500;
max_drought = 0;
#This for loop is for 108 days.
for day in range(109):
chance=random.uniform(0,1);
rainfall=rainFallAmount(chance);
print(rainfall);
#last_5_days=[day%5];
#last_5_days= rainfall;
#math.fsum([last_5_days]) > 6
#there was a flood
if rainfall<0.5:
days_of_drought+=1;
days_rained=0;
num_days_no_rain+=1;
if days_of_drought>max_drought:
max_drought=days_of_drought;
else:
days_rained+=1;
if rainfall>=1.5:
days_over15+=1;
if rainfall>=0.5:
totalRain+=1;
avgRain=totalRain/day;
print(rainfall);
print("The number of days the rain was greater than 1.5 inches: ", days_over15);
print("The longest period of no rain is: ", num_days_no_rain);
print("The total rain for", day, "days is:", totalRain);
print("The average rain per day is: ", avgRain);
print("The longest period of rain is: ", days_rained);
print("Longest drought was: ", days_of_drought,"days");
#This for loop is for a whole century.
for years in range(36500):
chance=random.uniform(0,1);
rainfall =rainFallAmount(chance);
print(rainfall);
if rainfall == 0:
days_of_drought+=1;
days_rained=0;
if days_of_drought>max_drought:
max_drought=days_of_drought;
days_rained+=1
if rainfall>=0.5:
totalRain+=1;
avgDayRain=(totalRain/day;)
avgYearRain=(totalRain/years);
print("The longest period of no rain is: ", noRain);
print("The total rain for", years, "years is:", totalRain);
print("The average rain per year is: ", avgYearRain);
print("The average rain per day is: ", avgDayRain);
문제는 매우 복잡하며 다른 질문에 더 작은 해결할 수있는 부분으로 더 잘 분할되어야합니다. 질문을 공식화하고 다른 사용자가 귀하를 따라 가기 쉽습니다. – linkyndy
강우량 시뮬레이션은 내 것이기도하지만 답변을 얻으려면 다시 게시해야 할 수도 있습니다. 도움이 필요하고 정말 감사 할 것입니다. – Shannon