2010-12-17 36 views
-1

你好誰能幫我寫一個函數來計算1 + x + x^2 + ... + x^n給定的x和正整數n並用它來計算(1+ x + x^2 + ... + x^10)(1 + x^2 + x^4 + ... + x^10)幫我編寫一個函數

+3

請不要讓人們「給予編碼」。把你已經嘗試過的東西。 – dheerosaur 2010-12-17 04:11:58

回答

0

for your fist question,

x = 2; (給定)

n = 10; (給定的)

檢查urself這些值是否R正極和whteveru想

結果= 1;

用於:(a = 2;一個< = N;一++)

{

結果+ = X ^一個;

}

+1

使用代碼包裝標籤 – Ben 2010-12-17 03:54:31

0

我認爲這是您正在尋找的功能。

def f(x, n): 
    answer = 0 
    for y in range(n + 1): 
     answer += x ** n 
    return answer 

我不太理解第二部分。

1
def myfunc(x, n, step): 
    if n > 0: 
    return x**n + myfunc(x, n - step, step) 
    return 1 

myfunc(100, 10, 1) * myfunc(100, 10, 2) 
+0

我試過你的程序,但它說需要3個參數,但給出了2個。 – Ronnie 2010-12-17 03:54:15

+0

@Ronnie - 表達式的第二部分將總和中的每個元素的權力改變2。上面顯示的代碼的最後一行計算您的表達式。根據你所得到的,x是100,n是10,括號中的第一部分使用'step'的值1,括號中的第二部分使用'step'的值2。 – sje397 2010-12-17 03:58:33

+0

我也看到它應該返回1嗎? – Ronnie 2010-12-17 04:04:46

1

您可以使用此計算1+x+x^2+...+x^n

lambda x, n: sum([x**y for y in range(0, n + 1)]) 

使用邏輯來計算第二功能。

0
function series($x, $n) { 

    $answer = 1;   

    for($i = $n; $i > 0; $i--) { 

     $answer += pow($x, $i); 

    } 

     return $answer; 
} 

series(100, 10) * series(100, 10) 
1

既然你把一個Sage標籤放在它上面,這是一個有趣的方式來實現它在賢者。

sage: R.<x> = PowerSeriesRing(ZZ) 

將R定義爲以x爲變量的冪級數。 ZZ意味着我們使用整數作爲係數。現在,讓我們看看我們可以用它做:

sage: R([1, 2])    # the array inside contains the coefficients 
1 + 2*x      # for each element of the series 
sage: R([1]*11)    # this gives us the first power series 
1 + x + x^2 + x^3 + x^4 + x^5 + x^6 + x^7 + x^8 + x^9 + x^10 
sage: R([1,0]*5 + [1])  # and here is our second one 
1 + x^2 + x^4 + x^6 + x^8 + x^10 
sage: R([1]*11).(5)   # we can evaluate these for various x values 
12207031 
sage: R([1]*11).subs(x=5) # an alternate way to evaluate 
12207031 
sage: f = R([1]*11)*R([1,0]*5+[1]) # this constructs the desired function 
sage: f(100)     # we can evaluate it at any value 

無論如何,希望你現在理解如何在Sage中做到這一點。我對Sage本人很陌生,但我到目前爲止真的在挖掘它。