Naloga: prvi del

Za prvi del naloge se nam ni potrebno naučiti ničesar novega o numpy-ju. Tule je le nekaj nasvetov.

Podatke lahko preberete tako:

import numpy as np
import re

instr = np.array([[line.startswith("on")] +
                  [int(x) for x in re.findall("-?\d+", line)]
                  for line in open("example.txt")])
instr
array([[     1,    -20,     26,    -36,     17,    -47,      7],
       [     1,    -20,     33,    -21,     23,    -26,     28],
       [     1,    -22,     28,    -29,     23,    -38,     16],
       [     1,    -46,      7,     -6,     46,    -50,     -1],
       [     1,    -49,      1,     -3,     46,    -24,     28],
       [     1,      2,     47,    -22,     22,    -23,     27],
       [     1,    -27,     23,    -28,     26,    -21,     29],
       [     1,    -39,      5,     -6,     47,     -3,     44],
       [     1,    -30,     21,     -8,     43,    -13,     34],
       [     1,    -22,     26,    -27,     20,    -29,     19],
       [     0,    -48,    -32,     26,     41,    -47,    -37],
       [     1,    -12,     35,      6,     50,    -50,     -2],
       [     0,    -48,    -32,    -32,    -16,    -15,     -5],
       [     1,    -18,     26,    -33,     15,     -7,     46],
       [     0,    -40,    -22,    -38,    -28,     23,     41],
       [     1,    -16,     35,    -41,     10,    -47,      6],
       [     0,    -32,    -23,     11,     30,    -14,      3],
       [     1,    -49,     -5,     -3,     45,    -29,     18],
       [     0,     18,     30,    -20,     -8,     -3,     13],
       [     1,    -41,      9,     -7,     43,    -33,     15],
       [     1, -54112, -39298, -85059, -49293, -27449,   7877],
       [     1,    967,  23432,  45373,  81175,  27513,  53682]])

Prvi stolpec pove, ali kocko prižigamo ali ugašamo, naslednja dva povesta meji v smeri x, naslednja dva v y, zadnja dva v z. Koordinate vključujejo zgornjo mejo: -26 in 7 pomeni od -26 do vključno 7. To ni dobro. Boljše bi bilo, če bi pisalo od -26 do 8, kar bi pomenilo, da 8 ni vključena. Za prvi del naloge to ni tako zelo pomembno, v drugem pa bo postalo. Zato povečajte vsa števila v stolpcih z indeksi 2, 4 in 6 za 1. To naredite z enim samim prirejanjem. Ker je preprosto.

V prvem delu je potrebno ignorirati vse vrstice, pri katerih meje niso znotraj intervala -50 do 50 (vključno). Pripravite novo tabelo, v kateri bodo le takšne vrstice. Brez zank, seveda. To je zato, da povadite np.min in np.max prek osi in logične operatorje na tabelah in indeksiranje z maskami.

Potem pa preprosto naredite tabelico, katere elementi ustrezajo kockam v reaktorju. Zapodite zanko for (ki bo tudi edina zanka for!) prek te tabele, za vsako vrstico prižgite oz. ugasnite kocke, na koncu pa jih preštejte.