Código de Python - Metodo ruffini (solo para numeros enteros)

Requerimientos

Solo python diganme si les sirve (solo numeros positivos y negativos)

3.6.4
estrellaestrellaestrellaestrellaestrella(3)

Publicado el 29 de Mayo del 2018gráfica de visualizaciones de la versión: 3.6.4
3.739 visualizaciones desde el 29 de Mayo del 2018
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Creo que sirve para todos los python.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import os
 
def menu():
	"""
	Función que limpia la pantalla y muestra nuevamente el menu
	"""
	os.system('cls') # NOTA para windows tienes que cambiar clear por cls
	print ("Autor: Alex P.")
	print ("Cuantos terminos tiene: ")
	print ("\t1 - Presione (1) Notas del autor)")
	print ("\t2 - Presione (2) si tiene dos terminos, (sin contar el independiente)")
	print ("\t3 - Presione (3) si tiene tres terminos, (sin contar el independiente)")
	print ("\t4 - Presione (4) si tiene cuatro terminos, (sin contar el independiente)")
	print ("\t5 - Presione (5) para salir")
 
while True:
	# Mostramos el menu
	menu()
 
	# solicituamos una opción al usuario
	opcionMenu = input("inserta un numero valor >>:  ")
 
 #opcion 1
	if opcionMenu=="1":
		import msvcrt
		print ("")
		print ("*Solo se aceptan numeros enteros*")
		msvcrt.getch()
 #opcion 2
	elif opcionMenu=="2":
		import msvcrt
		print ("")
		a = int(input("x2: "))
		b = int(input("x3: "))
		c = int(input("termino Independiente: "))
 
		f = int(input("Valor Madre:"))
		g = a
 
		b_1 = int(f*g)
		b_r = int(b+b_1)
		c_1 = int(f*b_r)
		c_r = int(c+c_1)
 
		print("Cociente: ", int(g), int(b_r))
		print("Resto: ", int(c_r))
 
		f_1 = int(input("Valor Madre segundo: "))
		b_2 = int(f_1*g)
		b_2r = int(b_r+b_2)
 
		print(g)
		print("Resto: ", int(b_2r))
		msvcrt.getch()
 
 	#opcion 3
	if opcionMenu=="3":
		import msvcrt
		print ("")
		a = int(input("x^3: "))
		b = int(input("x^2: "))
		c = int(input("x: "))
		d = int(input("Termino independiente: "))
 
		f = int(input("Valor Madre: "))
 
		g = a
		b_1 = int(f*g)
		b_r = int(b+b_1)
		c_1 = int(f*b_r)
		c_r = int(c+c_1)
		d_1 = int(f*c_r)
		d_r = int(d+d_1)
 
		print(int(g), int(b_r), int(c_r))
		print(int(d_r))
		#segunda
		f_1 = int(input("segundo valor madre : "))
 
		b_2 = int(f_1*g)
		b_r2 = int(b_r+b_2)
		c_2 = int(f_1*b_r2)
		c_r2 = int(c_r+c_2)
 
		print(int(g),int(b_r2))
		print(int(c_r2))
		#tercero
		f_2 = int(input("tercer valor madre: "))
		b_3 = int(f_2*g)
		b_r3 = int(b_r2+b_3)
		print(int(g))
		print(b_r3)
		msvcrt.getch()
 
 #opcion 4
	elif opcionMenu=="4":
		import msvcrt
		print ("")
		a = input("Valor que sustituye a x^4: ")
		b = input("Valor que sustituye a x^3: ")
		c = input("Valor que sustituye a x^2: ")
		d = input("Valor que sustituye a x: ")
		e = input("Termino Independiente: ")
 
		f = input("Valor Madre: ")
 
		g = int(a)
		h = int(f)*int(g)
		i = int(b)+int(h)
		j = int(f)*int(i)
		k = int(c)+int(j)
		l = int(f)*int(k)
		m = int(d)+int(l)
		n = int(f)*int(m)
		resto = int(e)+int(n)
 
		print("Cociente: ", g, i, k, m)
		print("Resto: ", resto)
 
		#segundo valor
		f_1 = int(input("Segundo valor para ruffini: "))
 
		i_1 = int(f_1*g)
		i_r = int(i+i_1)
		k_1 = int(f_1*i_r)
		k_r = int(k+k_1)
		m_1 = int(f_1*k_r)
		m_r = int(m+m_1)
 
		print("Cociente_2: ",int(g),int(i_r),int(k_r))
		print("Resto_2: ", int(m_r))
 
		#tercero
		f_2 = int(input("Tercer valor para ruffini: "))
 
		i_r2 = int(f_2*g)
		i_rtotal = int(i_r+i_r2)
		k_r2 = int(f_2*i_rtotal)
		k_rtotal = int(k_r+k_r2)
 
		print("Cociente_3: ", int(g), int(i_rtotal))
		print("Resto_3: ", int(k_rtotal))
 
		#cuarto
		f_3 = int(input("Cuarto valor para ruffini: "))
 
		i_Terminada = int(f_3*g)
		i_total = int(i_rtotal+i_Terminada)
 
		print("Cociente_4: ", int(g))
		print("Resto_4: ", int(i_total))
		print("")
		print("Oprima una tecla para ir al menu...")
		msvcrt.getch()
 #opcion 5
	elif opcionMenu=="5":
		break
	else:
		print ("")



Comentarios sobre la versión: 3.6.4 (3)

Imágen de perfil
30 de Mayo del 2018
estrellaestrellaestrellaestrellaestrella
Sobre Linux no funciona, ya que no existe la libreria 'msvcrt',
Responder
9 de Enero del 2022
estrellaestrellaestrellaestrellaestrella
¿Puede ser que sirva hasta polinomios de grado 4?
Va uno que hice para cualquier tipo de grado, aunque para números enteros, para reales habría que cambiar los int de la línea 18 por float solamente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import sympy as sp
 
'''
Regla de Ruffini
'''
## Definición de la variable
x = sp.Symbol('x') # definición de la variable simbólica de los polinomios
 
## Dividendo
gr_num = int(input('Ingresar GRADO del polinomio (número natural mayor que uno): ')) # grado del numerador
 
numerador_mono = [] # numerador_m es una lista con los monomios del numerador
l_coef = [] # l_coef es una lista con los coeficientes de los monomios del numerador
 
for potencia in range(gr_num+1,0,-1):
    coef_num = int(input('Ingrese coeficiente de la POTENCIA ' + str(potencia-1) + ' del polinomio de grado ' + str(gr_num) + ':\n'))
    l_coef.append(coef_num)
    numerador_mono.append(coef_num*x**(potencia-1))
 
dividendo = 0 # luego será el polinomio completo
for monomios in numerador_mono:
    dividendo = dividendo + monomios
 
print('El dividendo es: ' + str(sp.expand(dividendo)) + ' y sus coeficientes son: ' + str(l_coef))
 
## cálculo
a_menos = -a
 
coef_cociente = [l_coef[0]]
for i_coef in range(1,len(l_coef)):
    nuevo_coef = l_coef[i_coef] + a_menos*coef_cociente[i_coef-1]
    coef_cociente.append(nuevo_coef)
 
l_cociente = []
for i in range(0,len(coef_cociente)-1):
    l_cociente.append(coef_cociente[i]*x**(gr_num-(i+1)))
 
cociente = 0
for monomios in l_cociente:
    cociente = cociente + monomios
 
cociente = sp.expand(cociente)
print('El COCIENTE de hacer ' + str(dividendo) + ' dividido ' + str(divisor) + ' es:\n' + str(cociente) + '\n')
 
resto = coef_cociente[len(l_coef)-1]
print('El RESTO de la división es:\n' + str(resto) + '\n')
 
teorema_resto = cociente*divisor + resto
print('Comprobación del TEOREMA DEL RESTO,\n P(x)=Q(x)C(x)+R(x):\n donde\n P(x)=' + str(dividendo) + '\n Q(x)=' + str(divisor) + '\n C(x)=' + str(cociente) + '\n R(x)=' + str(resto) + '\n P(x)=' +  str(sp.expand(cociente*divisor + resto)) + '\n' + str(sp.expand(cociente*divisor + resto) == dividendo))
posiblemente se puede hacer más corto y elegante, pero funciona bien.
Responder
9 de Enero del 2022
estrellaestrellaestrellaestrellaestrella
Editado, había cambiado de lugar al divisor cortándolo pero olvidé pegarlo, queda así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import sympy as sp
 
'''
Regla de Ruffini
'''
## Definición de la variable
x = sp.Symbol('x') # definición de la variable simbólica de los polinomios
 
## Dividendo
print('DIVIDENDO\n')
gr_num = int(input('Ingresar GRADO del polinomio (número natural mayor que uno): ')) # grado del numerador
 
numerador_mono = [] # numerador_m es una lista con los monomios del numerador
l_coef = [] # l_coef es una lista con los coeficientes de los monomios del numerador
 
for potencia in range(gr_num+1,0,-1):
    coef_num = int(input('Ingrese coeficiente de la POTENCIA ' + str(potencia-1) + ' del polinomio de grado ' + str(gr_num) + ':\n'))
    l_coef.append(coef_num)
    numerador_mono.append(coef_num*x**(potencia-1))
 
dividendo = 0 # luego será el polinomio completo
for monomios in numerador_mono:
    dividendo = dividendo + monomios
print('El dividendo es: ' + str(sp.expand(dividendo)) + ' y sus coeficientes son: ' + str(l_coef) + '\n')
 
 
## Divisor (denominador del tipo (x+a) o (x-a))
print('DIVISOR\n')
a = int(input('Ingresar COEFICIENTE INDEPENDIENTE del DIVISOR (a): ')) #coeficiente independiente divisor
 
 
divisor = sp.expand(x+a)
print('El divisor es (' + str(divisor) + ')\n')
 
## cálculo
a_menos = -a
 
coef_cociente = [l_coef[0]]
for i_coef in range(1,len(l_coef)):
    nuevo_coef = l_coef[i_coef] + a_menos*coef_cociente[i_coef-1]
    coef_cociente.append(nuevo_coef)
 
l_cociente = []
for i in range(0,len(coef_cociente)-1):
    l_cociente.append(coef_cociente[i]*x**(gr_num-(i+1)))
 
cociente = 0
for monomios in l_cociente:
    cociente = cociente + monomios
 
cociente = sp.expand(cociente)
print('El COCIENTE de hacer ' + str(dividendo) + ' dividido ' + str(divisor) + ' es:\n' + str(cociente) + '\n')
 
resto = coef_cociente[len(l_coef)-1]
print('El RESTO de la división es:\n' + str(resto) + '\n')
 
teorema_resto = cociente*divisor + resto
sp.pprint('Comprobación del TEOREMA DEL RESTO,\n P(x)=Q(x)C(x)+R(x):\ndonde\n P(x)=' + str(dividendo) + '\n Q(x)=' + str(divisor) + '\n C(x)=' + str(cociente) + '\n R(x)=' + str(resto) + '\n\n P(x)=' +  str(sp.expand(cociente*divisor + resto)) + ' \n' + str(sp.expand(cociente*divisor + resto) == dividendo))

(los comentarios ## son porque uso el IDE pyzo, que simboliza un bloque)
Responder

Comentar la versión: 3.6.4

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s4625