[elektro] Modulo "szorzás"???

Pyrograph Office office at pyrograph.hu
Fri Sep 19 09:49:33 CEST 2008


Hello, Lista!

Kellene nekem valami nagyon frappáns algoritmus a következőre:

Adott mondjuk 3 paraméter, a következő pozitiv egész értéktartományokkal:

A3 [0..2]
A5 [0..4]
A7 [0..6]

Egy konkrét példa a feladatra:

A3 = 2
A5 = 1
A7 = 3

A lehető legegyszerübb algoritmust keresném (csak összeadás, kivonás és
szorzás műveletekből álljon), amivel meg tudnám keresni azt a LEGKISEBB
pozitiv egész számot (M), amire igaz, hogy a
3-mal osztott maradéka 2 (vagyis M mod 3 = 2)
5-tel osztott maradéka 1 (vagyis M mod 5 = 1)
7-tel osztott maradéka 3 (vagyis M mod 7 = 3)
(tehát az A3, A5 és A7 jelzik, hogy az M számnak mennyi legyen a maradéka
3, 5 és 7-tel való osztáskor)

Jelen példában ugye az M = 101 lenne. De milyen algoritmussal tudnám ezt
korrektül, paraméterezhetően, gyorsan kiszámolni bármilyen esetre?

Általános (univerzális) algoritmus kellene, mert ez csak egy példa volt, a
valóságban azonban nem 3 db. paraméter lesz, hanem 8-10 db. (vagy
mégtöbb), és a paraméterek értékeinek minden lehetséges variációja
előfordulhat a saját értéktartományukon belül.

Még egy fontos kitétel lenne:
Ez az algoritmus uC-ben futna; így jó lenne (a fenti példánál maradva) ha
a számításhoz használt egyik belső változó sem lépné át számítás közben a
3*5*7=105 értéket, vagy maximum a 105*7=735 értéket (7 = a legmagasabb
paraméter a számításban). Ez több paraméternél már lényeges szempont lehet
azért, hogy ne kelljen a számításhoz szükséges belső változóknak különösen
hosszabb változótípust létrehozni.

Előre is köszönöm, ha valaki tudna valami egyszerűen nagyszerű és jó
ötletet adni.

Nyári Viktor



More information about the Elektro mailing list