2010-12-17 69 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本人很陌生,但我到目前为止真的在挖掘它。