Форум сайта python.su
Господа программисты, помогите чем можете,завтра экзамен, а код написать не могу. задача: Запросив у пользователя степень полинома, сгенерировать случайным образом целочисленные коэффициенты полинома (в диапазоне -5..+5) и вывести полином так, чтобы он смотрелся “нормально” с точки зрения записи “от руки” (не должно быть элементов вида: …+ -2 х^2…; 1 x^3 +…; …+ 0 x +… и т.п.). Исчислить и вывести “нормально” производную полинома. Помогите с кодом или подскажите где смогут помочь1. Возможна оплата
Офлайн
Примерно так (для python 2.x):
import random
def make_poly( max_n ):
return [ ( random.randint( -5, 5 ), n ) for n in range( max_n + 1 ) ]
def deriv( poly ):
return [ ( k*n, n-1 ) for k,n in poly ]
def show_elem( elem, pos ):
k, n = elem
sign_txt = "+" if (pos and k > 0 ) else ""
if n == 0:
pow_txt = ""
elif n == 1:
pow_txt = "x"
else:
pow_txt = "x^%d" % n
if k == 1 and n != 0:
k_txt = ""
elif k == -1 and n != 0:
k_txt = "-"
else:
k_txt = str( k )
if pow_txt:
if k_txt:
return sign_txt + k_txt + "*" + pow_txt
else:
return sign_txt + pow_txt
else:
return sign_txt + k_txt
def show_poly( poly ):
# Cut zero k
poly = [ elem for elem in poly if elem[0] ]
if not poly:
return "0"
text_lst = [ show_elem( elem, pos ) for pos, elem in enumerate(poly) ]
return "".join( text_lst )
def main():
max_n = input( "Max N:" )
poly = make_poly( max_n )
print show_poly( poly )
print show_poly( deriv( poly ) )
if __name__ == "__main__":
main()
Офлайн