Új hozzászólás Aktív témák

  • N!tRo

    tag

    Nos, itt egy 6x6-os mátrix, és a kékkel szedett koordináták határozzák meg a főátlót (gondolom én).

    [kép]

    Kérdés: Hogyan tükrözzük?

    A válasz nem nehéz.
    Megvizsgáljuk, hogy (1,2) és (2,1) prím-e, ha igen, kicseréljük.
    Megvizsgáljuk, hogy (1,3) és (3,1) prím-e, ha igen, kicseréljük.
    Megvizsgáljuk, hogy (1,4) és (4,1) prím-e, ha igen, kicseréljük.
    ...
    Megvizsgáljuk, hogy (2,3) és (3,2) prím-e, ha igen, kicseréljük.
    Megvizsgáljuk, hogy (2,4) és (4,2) prím-e, ha igen, kicseréljük.
    Megvizsgáljuk, hogy (2,5) és (5,2) prím-e, ha igen, kicseréljük.
    ...
    és így tovább!
    Tehát (1,1), (2,2), (3,3) stb... vizsgálatát kihagyjuk, mert ugyanarra a helyre cserélnénk, aminek nincs értelme.

    Akkor nézzük, vegyünk egy 'x' és egy 'y' változót, ami egész szám, tehát integer.
    Az első vizsgálat (1,2) volt, tehát x=1, y=2. Ezek legyenek a kezdőértékek.
    Ez után látszik, hogy y értékét kell növelni, addig, amíg elérjük a mátrix méretét, ez esetben a 6-ot.
    Ez után x értékét kell növelni egyel (x=2 lesz), tehát ugrunk egy sort. De! Észre kell venni, hogy y már nem 2-től fog indulni, hanem 3-tól!

    Összegezzünk!

    X értéke 1-től fog indulni és 5-ig tart (mert (6,6)-ot nem vizsgáljuk) és Y értéke meg X+1-től fog indulni mindig és 6-ig tart (az ábráról ez mind leolvasható).

    Tehát megvan a leírás, már csak be kell programozni.

    for x:=1 to MatrixMerete-1 do
    for y:=x+1 to MatrixMerete do <primvizsgalat es csere ha szukseges>


    A csere meg ugye úgy néz ki, hogy kell egy segédváltozó.
    Legyen ez S, tehát a kicserélő algoritmus:

    S:=ertek[x,y]; ertek[x,y]:=ertek[y,x]; ertek[y,x]:=S;

    Remélem tudtam segíteni!

    Attila





    My Frist Android Logic Game -[ Frame It! ]- keresd az Android Market-en!

Új hozzászólás Aktív témák