我一直在困惑於如何獲得在Python中工作的某個函數。該功能,需要到其他正整數的正整數如下:兩步算法:將輸入字符串映射到輸出字符串
Phi_m(n2) = Phi_m(m*n + r) = m*x[n] + r*(x[n + 1] - x[n])
上述條款都是整數值,並定義如下:
n2 = the (n2)th slot of the output string
m = a fixed positive integer
n = some multiple of m such that n*m is less than or equal to n2
r = a remainder term to fill in the amount missing from n*m in decomposing n2
x[n] = the element in the [n1]th slot of the input string
x[n + 1] = the element in the [n1 + 1]th slot of the input string
一般我們用一串數字開始,例如0,1,1,2,3,3,並以(k + 1)m-1項結束,其中k是您開始使用的項的數量,不包括0.要使用我們首先修復的函數一個m,比如m = 2。現在我們用m來分解n2,其中n2代表我們輸出序列的一個'slot'。說n2 = 5。然後我們問'輸出字符串'的第五個'槽'是什麼。在這種情況下,我們的總輸出字符串長度爲(5 + 1)2 + 1。請注意,我們不計數0--它總是存在的並且對我們而言是第0項,因此我們有5個初始項。爲了回答我們的問題,我們將5 = 2 * 2 + 1作爲分解。現在,我們有一個分解,我們可以運用我們的功能:
F(x(5)) = F(x(2*2+1)) 2x[2] + 1(x[3] - x[2]).
的事情是,爲Python做到這一點,必須知道如何分解每個號碼。所以它知道2是固定的,並且知道2 * 3太多,所以選擇2 * 2。然後它必須知道這個數字太小並且加上餘數1.只有一次完成後,它才能真正抓住n = 5。也就是說,它可以運行該函數。看來很清楚,一旦它知道如何做到這一點,它可以貫穿我們範圍內的每一個n,但我真的不知道如何編程這個功能的肉。
現在回答一些問題:x是函數嗎?一個列表?一個號碼? x [n]本質上是一個列表。
當你說「輸入字符串的值」時,你是什麼意思? Phi_m的簽名是什麼?
作用於此列表的函數需要列表中的單個元素,並以某種方式對數字進行分解,然後應用您在上面看到的「公式」。從這個意義上說,它更像是一個兩步算法。
請讓我知道,如果這不清楚。我一定會繼續修改,直到對這些閱讀有意義。
在單獨的行解釋每個函數的每個變量。請沒有句子。首先是數據,然後解釋你的功能。 –
這很不清楚。你在問一個算法。要獲得一個,我們需要確切地知道輸入是什麼,並根據輸入清楚地定義輸出。 – Gene
@zoranPavlovic我在開始的時候添加了一個列表來簡要地解釋每個變量。這有幫助嗎?是否還有更多應該添加?謝謝! – 114