#!/usr/bin/python
#
# Interpolacion de Lagrange como calculadora de sombras.
# PRIMERO CALCULAREMOS LAS SOMBRAS
# ELEGIMOS DOS VALORES ALEATORIOS Y EL VALOR DE LA CLAVE A OCULTAR
valor1=input("Introduce Valor 1: ")
valor2=input("Introduce Valor 2: ")
clave=input ("Introduce Clave: ")
print
# ELEGIMOS 5 VALORES AL AZAR DE x
x1=input("Introduce valor x1: ")
x2=input("Introduce valor x2: ")
x3=input("Introduce valor x3: ")
x4=input("Introduce valor x4: ")
x5=input("Introduce valor x5: ")
print
# CONFECCIONAMOS NUESTRAS SOMBRAS
s1=((valor1*(x1)**2)+(valor2*x1)+clave)
s2=((valor1*(x2)**2)+(valor2*x2)+clave)
s3=((valor1*(x3)**2)+(valor2*x3)+clave)
s4=((valor1*(x4)**2)+(valor2*x4)+clave)
s5=((valor1*(x5)**2)+(valor2*x5)+clave)
print
print "Primera sombra: ", (x1,s1)
print "Segunda sombra: ", (x2,s2)
print "Tercera sombra: ", (x3,s3)
print "Cuarta sombra: ", (x4,s4)
print "Quinta sombra: ", (x5,s5)
print
# OPERACIONES PARA DESCIFRAR LA CLAVE PRIMIGENIA
print
print "A continuacion introduciremos los tres pares de sombras."
print
a=input("Introduce valor x1: ")
b=input("Introduce valor x2: ")
c=input("Introduce valor x3: ")
d=input("Introduce segundo valor FLOTANTE sombra 1: ")
e=input("Introduce segundo valor FLOTANTE sombra 2: ")
f=input("Introduce segundo valor FLOTANTE sombra 3: ")
print
#==========FASE DE OPERACIONES============
g=(-b)+(-c)
h=(-b)*(-c)
i=a-b
j=a-c
k=i*j
l=d/k
m=((d)*(g))/k
n=((d)*(h))/k
print
#=======================
g1=(-a)+(-c)
h1=(-a)*(-c)
i1=b-a
j1=b-c
k1=i1*j1
l1=e/k1
m1=((e)*(g1))/k1
n1=((e)*(h1))/k1
print
#=====================
g2=(-a)+(-b)
h2=(-a)*(-b)
i2=c-a
j2=c-b
k2=i2*j2
l2=f/k2
m2=((f)*(g2))/k2
n2=((f)*(h2))/k2
print
#======================
result1=l+l1+l2
print result1
result2=m+m1+m2
print result2
result3=n+n1+n2
print result3
print
print "El numero secreto es: ", result3
print
Interpolación de Lagrange como entorno para protocolo de reparto de secretos. Se reparte un secreto en cinco partes y con tres de ellas se puede recuperar.
