PRACTICA # 2 SUMA EREW
#Primer Intento
import math
def SumaSec(n):
nSuma=0
for i in range (1,n+1):
nSuma=nSuma+i
return nSuma
print '\t\t----- Suma de n Numeros 1+2+3+...+n ------\n'
n=int(raw_input('Teclea el valor de n -> '))
s=SumaSec(n)
print 'La suma es ->', s
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#Segundo Intento
import math
def SumaSecVec(n):
nSuma=0
V=[]
r=int(raw_input('Indica la cantidad de Numeros a Ingresar: '))
i=1
while (i<=r):
n=int(raw_input('Teclea Numero -> '))
V.append(n)
i+=1
for i in range (1,n+1):
nSuma=nSuma+V[i-1]
return nSuma
print ' \t\t----- Suma de n Numeros 1+2+3+...+n ------\n'
n= ()
s=SumaSecVec(n)
print '\nLa Suma es -> ' ,s
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#Suma Secuencial
import math
def hilo(i,j):
if((2*j % 2**i) == 0):
a[int(2*j)] = a[int(2*j)] + a[int(2*j - 2**(i-1))]
a = [0,1,1,1,1,1,1,1,1]
n = len(a)
lg = int(math.log(n,2))
print a
i = 1
while(i<=lg):
j=1
while(j<=n/2):
hilo(i,j)
j = j+1
print a
i=i+1
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#Suma Secuencial (threading)
import math
from threading import Thread
def hilo(i,j):
if((2*j % 2**i) == 0):
a[int(2*j)] = a[int(2*j)] + a[int(2*j - 2**(i-1))]
a = [0,1,1,1,1,1,1,1,1]
n = len(a)
lg = int(math.log(n,2))
print a
i = 1
while(i<=lg):
j=1
while(j<=n/2):
t = Thread(target=hilo, args=(i,j))
t.start()
t.join()
j = j+1
print a
i=i+1
No hay comentarios:
Publicar un comentario