Izračun iz tabele

Zdravo!

kako bi zgledala koda za to, da iz matrice izbere naključno polje, nato še tri naslednja polja - te med seboj deli in na koncu primerja z rezultatom iz tistega prvega polja in primerja (če je večje od 1).

Računa tako dolgo, dokler ne izračuna vseh možnosti.

Najraje v Python-u

5 odgovorov

A to bi šlo za enodimenzionalono matriko oz enodimenzionalen array? Kaj se zgodi v primeru da računaš za člen ki je zadnji v matriki? Začneš na začetku matrike? Torej naprimer če je peti člen zadnji nato deliš n1/n2/n3? In kaj če je matrkia manjša od štiri člene? Zakaj naključno če boš itak zračunal vse?

Zdej ni mi sicer use jasno ampak recimo nekako takole bi lahko to zgledalo

matrika = [1, 2, 3, 4, 5]
rezultat =[]
for i in range(len(matrika)):
    if (i < len(matrika) - 3):
        #zdej pa kako boš točno to primerjal spet vprašanje
        zacasni = matrika[i +1 ] / matrika[ i+2 ] /matrika[ i+3 ]
        rezultat.append(matrika[ i ] > zacasni)

Neki na to foro sam je se kr velik nejasnosti, pac da spravis ta primerjanja v nov list

1

Matrika izgleda tako:

   red       blue      green     silver    black     yellow    purple

red 0.8333 12.322 13.649 15.060 14.831 105.854
blue 12.002 14.789 16.379 18.074 17.800 127.008
green 0.8116 0.6762 11.076 12.223 12.037 85.892
silver 0.7327 0.6105 0.9029 11.035 10.867 77.549
black 0.6640 0.5533 0.8182 0.9063 0.9848 70.290
yellow 0.6743 0.5618 0.8308 0.9202 10.154 71.360
purple 0.0945 0.0787 0.1164 0.1290 0.1423 0.1401

Prilagam sliko, ker ne gre prilepiti matike.

Izračun pa je takšen:

Ena enota rdeče je enaka 12.002 enotam modre; 12.002 enot modre je enaka 177497578 enotam zelene (12002*14789); 177497578 enot zelene je enaka 21870 enotam rdeče (177497578/8116). Če pogledaš vidiš, da sma začela z eno enoto rdeče. Te vrednosti me zanimajo – se pravi če začnem z eno vrednostjo in jo primerjam (izračun) z ostalimi, da dobim vrednost večje kot 1 (tisto začetno stanje). Kombinacije pa sta minimalno dve.

1

Ja potem če imaš razmerja vedno enaka definiraš recimo dictonary za rdeča je 1:

colors = {'red':1,
            'blue':0.8333,
        'green':12.322,
            'silver':13.649,
        'black': 15.069,
        'yellow':14.831,
        'purple':105.854}

Potem pa računaš multiplikataor glede na to za x katere bare te zanima koliko je y druge barve, napimer da te zanima za 12.002 modre koliko je to ostalih

multiplier = 12.002 / colors['blue']

In potem računaš in izpišeš

for color in colors:
    print color + ' = ' + str(colors[color] * multiplier)

In za ta primer dobiš

blue = 12.002
purple = 1524.61263411
yellow = 213.610538822
black = 217.038447138
green = 177.473471739
silver = 196.586221049
red = 14.402976119

Tako nekako, bit te moralo to pomojem prav usmerit, upam da pomaga :)

2

Problem je, da ne moreš definirat, ker gre za spreminjujoče vrednost :/

Ok, tako je: sedaj sem z firebugom pogledal od kot jemljejo podatke za matrico in sem jo z urlibom spravil na disk. Sedaj je potrebno dolocit katere celice naj med seboj racuna. kako bi to dolocil? Problem je tudi, da mora biti odzadaj tudi neka "logika", da vzame vsa polja i njih medseboj tako dolgo racuna, dokler ena vrednost ni vecja od 1.