miércoles, 4 de julio de 2012

W.T.A.P. Cotas

Cota Superior: Sumatoria de probabilidades de supervivencia del objetivo según el arma con mayor ataque se toma así ya que esto sería el arma que causa mayor daño y deja un mínimo de sobrevivientes que es lo que se busca. Cota Inferior: Sumatoria de probabilidades de supervivencia del objetivo según el arma con menor ataque se toma así porque seria el menor que se puede obtener que deja un mínimo de sobrevivientes ya que es la que tiene menor poder de ataque.
from numpy import *
import random
from sys import argv

armas = list()
targets = list()

def cotaSuperior(armas):
    arma_mejor = armas.index(max(armas))
    return arma_mejor

def cotaInferior(armas):
    arma_peor = armas.index(min(armas))
    return arma_peor

try:
    datos = open(argv[1], 'r')
    tipos = datos.readline()
    #print tipos
    for t in tipos.split():
        armas.append(int(t))
    obj = datos.readline()
    #print obj
    for o in obj.split():
        targets.append(float(o))
    row = len(armas)
    col = len(targets)
    #print targets
    #print row, col
    matrix = empty((row, col))
    i = 0
    j = 0
    for linea in datos.readlines():
        elementos = linea.split()
        j = 0
        #print elementos
        for e in elementos:
            #print i, j
            matrix[i, j] = float(e)
            j += 1
        i += 1
    datos.close()

except:

    row = int(argv[1])
    col = int(argv[2])

    for i in range(col):
        targets.append(random.uniform(1.0, 20.0))

    for i in range(row):
        armas.append(random.randrange(1, 10))

    matrix = empty((row, col))
    for i in range(row):
        for j in range(col):
            matrix[i, j] = random.random()
s = ''
for a in armas:
    s += '%d '% a
print s

s = ''
for t in targets:
    s += '%f ' % t
print s

sumatoria =0
for i in range(row):
    s = ''
    for j in range(col):
        s += '%f ' % matrix[i, j]
    print s

for i in range(row):
    sumatoria += matrix[i, cotaSuperior(armas)]
print sumatoria

sumatoria2 =0
for i in range(row):
    sumatoria2 += matrix[i, cotaInferior(armas)]
print sumatoria2