-1
if Airplane==1:
 while icounter<4:
    ifuelliter=random.randrange(1,152621)
    #litter/kilometer
    LpK=152620/13500
    km=LpK*ifuelliter


    ipca=random.randrange(0,50)
    ipcb=random.randrange(0,50)
    ipcc=random.randrange(0,812)







    #3D space distance calculation
    idstance= math.sqrt((icba-ipca)**2 + (icbb-ipcb)**2 + (icbc-ipcc)**2)

    totaldist=km-idstance

    if totaldist>0:
          print "You have enoph fuel to get to New York AirPort"
          print ipca1,ipcb2,ipcc3
          icounter=3

    if totaldist<=0:

         print "You dont have enoph fuel to get to New York AirPort please go to the nearest one or you will die"
         print ipca,ipcb,ipcc
         icounter=icounter+1`

どうすればそれを作ることができますか

ipca=random.randrange(0,50)
ipcb=random.randrange(0,50)
ipcc=random.randrange(0,812)

乱数は毎回ループダウンし、他の数値は毎回ダウンしません。例:いいえ:

812
512
321
815
600
700

はい:

800
600
550
320
50
1
4

3 に答える 3

2

乱数を減らしたいが、それでも一様分布にしたい場合は、実際にすべての値を前もって生成してから、降順で並べ替える必要があります。

xs = [random.randrange(0, 50) for _ in range(4)]
xs.sort(reverse=True)

zip各リストから1つの値を取得するために使用して、3つのランダムな値すべてに対してこれを行う方法は次のとおりです。

a_list = [random.randrange(0, 50) for _ in range(4)]
b_list = [random.randrange(0, 50) for _ in range(4)]
c_list = [random.randrange(0, 812) for _ in range(4)]

a_list.sort(reverse=True)
b_list.sort(reverse=True)
c_list.sort(reverse=True)

for ipca, ipcb, ipcc in zip(a_list, b_list, c_list):
    distance = math.sqrt(ipca*ipca + ipcb*ipcb + ipcc*ipcc)
    # ...
于 2013-01-12T02:47:13.867 に答える
1

すでに最大値を制御しています。最後の値を渡すだけで、それよりも小さい新しい値を取得できます。

value = 1000
for x in xrange(10):
    value = random.randrange(value)
    print value
于 2013-01-12T04:52:09.910 に答える
0

以前の乱数を考慮に入れることができます。

number = random.randrange(0, 850)

while icounter < 4:
    if number == 0:
        print 'Number is zero'
        break

     number = random.randrange(0, number)

一様分布が必要な場合は、次のようなものを使用する必要があります。

def random_numbers(n=6, minimum=0, maximum=850):
    numbers = [random.randrange(minimum, maximum) for i in xrange(n)]
    numbers.sort(reverse=True)

    return numbers
于 2013-01-12T02:40:40.247 に答える