Ahoj,
hledam nejnizsi spolecnou hodnotu dvou posloupnosti.
Napriklad:
zacatek1: 36, diference: 20
zacatek2: 29, diference: 17
nejnizsi spolecna hodnota je 216.
Nektere posloupnosti ale nebudou mit spolecnou hodnotu, a ja nemuzu prijit na zpusob, kterym bych to lehce zjistil.
Poradi mi nekdo jak na to?
Diky za odpoved.
Offline
↑ krucibrk:
A ako si našiel tú 216?
Offline
↑ Stýv:
Tak jsem to pogooglil, a vychazi mi to jen pro nejake priklady.
Treba pro 20x - 17y = -7 to funguje dobre, ale pak treba pro 25x - 17y = -17 nebo 56x-72y=24 mi to nefunguje.
(Snazim se napsat program ktery to vypocita).
Pouzivam k vypoctu rozsireny eukliduv algoritmus.
K vysledku se dostanu takhle:
pomoci euklida zjistim x0 a y0, dosadim do a*x0 + b*y0 = 1,vezmu si x0,y0, vynasobim c-ckem a pouziju vzorec
x = x0 - (b/gcd(a,b))*t
y = y0 + (a/gcd(a,b))*t
x a y chci mit obe kladne, a tak zvysuju 't' dokud se tak nestane.
Offline
Zdravím,
Tato funkce najde nejbližší souběh dvou posloupností, pokud není, vrátí nulu.
Function Shoda(Z1,P1,Z2,P2)
Dim N
N = P1 + P2
Do Until Z1=Z2
If Z2>Z1 Then
Z1 = Z1 + P1
Else
Z2 = Z2 + P2
EndIf
If N>0 Then
N = N - 1
Else
Z1 = N
Exit Do
EndIf
Loop
Shoda = Z1
End FunctionZ1 - počáteční hodnota první posloupnosti
P1 - pravidelný přírůstek první posloupnosti
analogicky Z2,P2
Jak velký násobek P1, či P2 to je, už si dopočítáš...
Offline