[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