2013-10-15 147 views
-2

比方說,有一個初始數字,說A1是7546,並找到A2:輸入,排序和輸出項目陣列中的

a2 = (a1 * 31334) % 31337 

和相同的公式適用於A3等..

我想找到號碼直至幷包括A6,所以這是6號。

a1 = 7546, a2 = 8699, a3 = 4240, a4 = 15617, a5 = 15823, a6 = 15205. 

然後,我要輸出這6個數字,按升序排列,包括他們的 '名',像A5也好,格式如下:

1:4240(A3),
2:7546(a1)中,
3:8699(a2)中,
4:15205(A6),
5:15617(a4)中,
6:15823(a5)中,

如何用C或Python實現這一點?

我是比較新的節目,這是我的一個練習,所以這將真正幫助,如果有人成功地實現這個代碼,並可能發表意見指向的方向是正確的新秀。

預先感謝您。

編輯: 好吧,我到目前爲止所管理的是獲得我想要的所有數字,達到a6,並設法將它們存儲在一個數組中,但我不能以升序輸出或用在將它們按升序排列之前,它們的初始位置。

+4

W時的T如果將t R Iéd? – haccks

+0

C或Python是一個奇數的限制。 –

+0

你或許應該以[Python的教程]啓動(http://www.learnpython.org/)。 –

回答

0

,而不是對其進行命名每個變量存放在列表

a = [(7546,1)] 
for i in range(2,6): 
    # calculate the new a(i) from a(i-1) (need -2 as python is 0 based) 
    newA = (a[i-2][0] * 31334) % 31337 
    # save a(i) and i 
    a.append((newA, i)) 

# sort is based on first field: a(i) 
a.sort() 

# enumerate gives us a index (0,1,2,3,...) or the order (which I call rank) 
# (value, index) is the name for each (a(i), i) as it is enumerated 
for rank, (value, index) in enumerate(a): 
    print (rank, value, index)