Matriisin indeksien osajoukko U on yhtenäinen, jos sen jokaisesta alkiosta (i1, j1) voidaan kulkea vierekkäissiirtymillä (ei viistoon) sen jokaiseen muuhun alkioon.
Sen summalla taas tarkoitetaan summaa matriisin alkioista, jotka ovat U:n osoittamissa indekseissä.
Etsi matriisista
[
[915, 884, 162, 764, 609, 799],
[461, 242, 187, 912, 642, 766],
[163, 108, 512, 469, 990, 735],
[363, 411, 202, 114, 945, 568],
[627, 144, 842, 846, 320, 740]
]
yhtenäinen summa 6276.
Sen summalla taas tarkoitetaan summaa matriisin alkioista, jotka ovat U:n osoittamissa indekseissä.
Etsi matriisista
[
[915, 884, 162, 764, 609, 799],
[461, 242, 187, 912, 642, 766],
[163, 108, 512, 469, 990, 735],
[363, 411, 202, 114, 945, 568],
[627, 144, 842, 846, 320, 740]
]
yhtenäinen summa 6276.
Vastaukset 12
Vanhimmat
Hieman suurempi versio:
Matriisin koko on 22x41 (eli 22 riviä, 41 saraketta). Generoidaan matriisi seuraavasti.
Luodaan pseudosatunnaisia lukuja lähtemällä luvusta 72792426978 ja kertomalla sitä toistuvasti luvulla 5 ja ottamalla modulo 210120210023.
Matriisi täytetään näin generoiduilla luvuilla rivi kerrallaan.
Nyt etsittävä summa on 45340522932123.
Annetaan helpotukseksi vielä lukumäärät kuinka monta indeksiä kultakin riviltä tulee valita:
[7, 11, 12, 13, 15, 17, 18, 21, 24, 33, 33, 32, 31, 30, 28, 25, 21, 18, 17, 15, 13, 7]
En tiedä onko ratkaisu yksikäsitteinen (niin kuin en tuosta pienemmästäkään versiosta), mutta tämän lisärajoituksen pitäisi sitä aika paljon rajata.
Vielä lisähelpotuksena (tämä saattaa jo auttaa liikaakin) jokaiselta riviltä summa niistä alkioista jotka tulevat mukaan:
[626309618334, 1632942203349, 1555556578390, 1049414774885, 928956399009,
2188735897573, 2154308829024, 2374912340172, 2049438805751, 4141364059724,
2279972786528, 3293549890458, 3929378836624, 3305699302190, 2624446336466,
2954301011764, 1700737580152, 1683758338618, 1855269500673, 1209550677385,
1323386785757, 478532379297]
Voitte yrittää ilman näitä tai sitten näiden kanssa ja ilman lukumääriä, mutta melko hankalahan se taitaa olla ilman näitä helpotuksia.
Nämä ""helpotukset"" tässä vasta sotkeekin, etten tajua mitä pitäisi tehdä. Tuohon alle pistinkin jo kysymyksen, haetko tietoa riveistä joiden summa on tuo antamasi, vai haetko riveillä esiintyneitä lukuja.
Olipa kysymys kummasta tahansa, on tehtävä helppo, vaikka tehtävän annossa onkin yritetty antaa vaikutelma hyvin hankalasta asiasta.
Voisin pistää ratkaisun heti, mutta annan muillekin tilaa vastata.
Eli kansantajuisesti tarkoititko että hakea matriisista ne rivit joiden alkiot yhteenlaskettuna antaa 6276.
Listäänpä ettei matriisin mikään rivin summa ollut tuo pyydetty (6276). Ja rivin summa saadaan näin:
print(sum(Matriisi[0]))
print(sum(Matriisi[1]))
jne.
Lisätäänpä vielä
Matriisin kaikkien alkioiden summa saadaan (numpy) laajennosta käyttäen näin:
print(numpy.sum(Matriisi))
ja ilman laajennoksia riveittäin summattuna näin:
s=0;
for line in Matriisi: s =sum(line)
print(s)
Ei vaan joukkoa indeksejä, esim. { (1, 1), (1, 2), (2, 2), (2, 3), (3, 2) }, siten että kun matriisista värjätään nämä, niin värjätty alue on yhtenäinen:
**_
_**
_*_
Tässä vielä esimerkki siitä millainen yhtenäinen summa voi olla ja millainen ei:
https://aijaa.com/MZLeti
AHAA, no nyt tulikin jo mutkia matkaan, ei olekkaan huitastu noin vaan. Ei se mitään yritetään sitäkin.
No, nyt on tutustuttu asiaan, ja uskon että saisin ratkaistua, mutta minun äly ei riittäisi kuin tuottamaan vaihtoehto kaavat manuaalisesti tyylillä
M[1][1] M[1][2]=
M[1][1] M[1][2] M[2][1]=
Ja näitä kaavoja tulisi jo 2x2 matriisin selvitykseen 9
ja määrä kasvaa rajusti kun jatketaan 3x3 matriisin kanssa.
Eli joutuisin alkuun ratkaisemaan lähes kaiken käsin ennen kuin osaisin lyhentää sitä silmukoin. Tähän ei motivaatio riitä.
Se oli vaikea, mutta ratkaiseppa sinä nämä kolme tehtävää.
Mikä numero tai luku tulee kysymysmerkki ruutuun?
1.) [05], [07], [11], [13], [17], [??]
2.) [03], [05], [08], [13], [22], [??]
3.) [72], [69], [64], [57], [48], [??]
Oikeita vastauksia on toki useita (ja itseasiassa mikä tahansa luku kelpaa, kunhan keksii vaikkapa funktion, joka saa nuo arvot pisteissä 0, 1, 2, 3 ja 4), mutta tässä omat ensimmäisenä mieleen tulleet vastaukseni:
1. [19]. Jonossa on alkulukuja vitosesta eteenpäin järjestyksessä.
2. [39]. Jonon edellinen jäsen kerrotaan kahdella ja siitä vähennetään jäsenen järjestysnumero, eli 22*2-5=39.
3. [37]. Jonon jäsenet pienenevät aina seuraavalla parittomalla luvulla, eli ensin vähennetään 3, sitten 5, sitten 7, sitten 9 ja sitten 11, josta saadaan 37.