Hogyan kell ezt a feladatot ÁLTALÁNOSAN megoldani?
Írjuk fel két egész szám hányadosaként a következő számokat!
3,142 ("142" ismétlődik)
3,142 ("42" ismétlődik)
3,142 ("2" ismétlődik)
Nem végeredményre vagyok kíváncsi, hanem a megoldásmenetre, és ha lehetne akkor jól jönne nekem egy általános megoldás, hogy mit mikor mennyit kell és fontos, hogy miért is... előre is köszönöm! :)
"féltem, hogy eltolódik"
Sajnos igen, az itteni szerver eltolja a halmozott, vagy sor eleji szóközöket, tabulátorokat, és ugye a betűtípusban sem egységnyi szélesek a karakterek... na mindegy, erről most kár vitázni...
Szóval... igaz, már van 1-2 éve, hogy ilyen feladatokkal kellett foglalkozni, meg most a nyári szünetben sem foglalkoztam sokat matekkal, de valami a 9-es számról dereng... nézzzük csak:
Pl. ahhoz, hogy egy "142"-es ismétlődő mintájú, 0.1 és 1 közötti végtelen szakaszos tizedestörtet csináljak - azaz "0.14214214214..." ésígytovább -, a következő osztást kell elvégezzem:
> 142 ÷ 999
Ezek nyomán akkor már vegyük a konkrét példát, tehát az egyes helyiértéken álljon egy 3-as, és a tizedesjegyek kövessék a sorozatot. Ez már nehezebb ugye...
Próbáljunk ebből két olyan számot hozni, amik közül az egyik csak egyszer tartalmazza az egészrész a mintát, a másik meg csak a tizedesjegyekben:
'x' legyen a szám normálalakjának a mantisszája (első tagja), azaz : x=0.3142142142...
Ezek után vegyük a következőket:
> 10000*x = 3142,142142...
> 10*x = 3,142142...
A két sort egymásból kivonva : 9990*x = 3139
Ezzel már meg is kaptuk azt a két számot, amivel a kérdéses végtelen szakaszos tizedestört mantisszáját képezni tudjuk:
> 3139 ÷ 9990
A feladatban szereplő szám ennek a tízszerese ugye, tehát az előbbiből egy 10×-es szorzással már meg is van a szám:
> 3139 ÷ 999
Bizonságképp ennek nyomán még végezzük el a második példát is:
100*x = 3142.4242...
1*x = 31.4242...
99*x = 3111
> 3111 ÷ 99 = 31,424242...
>> 3111 ÷ 990 = 3,1424242...
Ezek már szerintem bőségesen elég levezetések azok, hogy algoritmizáljuk a megoldásmenetet.
Mivel programozónak tanulok, ezért megpróbálom úgy általánosítani matematikai formában a megoldásmenetet, hogy az adaptálható legyen programnyelvre is, de abból is ugyanúgy megérthető iskolai tananyaghoz is, remélem.
A kérdéses, kezdeti szám (mint végtelen szakaszos tizedestört) legyen végig 'x', az ismétlődő számsor pedig 'z':
x = y + w
w = a + [{z * sgn(x)} / (10^(e+f) - 10^f)]
(itt ugye ebből kiolvasható az is, hogy 'z' "számsor" számjegyeinek száma 'e-1' db, ill. vice versa)
a = {p * sgn(x)} / 10^f
a < 1
// itt ismét azt lehet tudni, hogy 'a' egy normálalakú szám, aminek számjegyeinek száma (az esetleges kezdő 0-kat is beleértve) 'g' darab. Hogy értsd az eddig leírtakat, az itt szereplő kifejezésekkel a következőképp ábrázolható képszerűen a kérdéses szakaszos tizedestört (lásd 'x'):
x :: y,p|z --- a ',' vessző a normál tizedesvessző, '|' pedig azt jelöli, hogy az utána következő rész egy végtelen tizedes-szakasz. Pl.: 3526.4375|37373737...
y ∈ ℤ
z, p ∈ ℤ+
w, a ∈ ℚ
A = (y + a + [z / 10^e]) * 10^(e+f) + [w - a]
A = x * 10^(e+f)
B = (y + a) * 10^e + [w - a]
B = x * 10^e
C = 10^(e+f) - 10^f
D = A - B
⇒ D ∈ ℤ
x = D / C
Végül egy gyakorlati példával is szemléltetve egy "komplexebb" számnál:
x := -3526.4375|37373737...
Ezekből:
y := -3526
w := -0.4375|37373737...
a := -0.4375
z := 37
p := 4375
e := 2 ; f := 4
A := -3526437537,3737373...
B := -35264375,373737373...
C := 99000
Így a felírt { A = x * 10^(e+f) ; B = x * 10^e ; C = 10^(e+f) - 10^f ; D = A - B } forma alapján:
1000000 * x = - 3526437537,3737373...
10000 * x = - 35264375,373737373...
990000 * x = - 3491173162
Ebből pedig kijön:
- 3491173162 ÷ 990000 = -3526,43753737373737373737...
Bár lehet, hogy van, aki sajátságosnak mondaná a levezetésem, vagy egyetemi szinten esetleg belekötnének... ki tudja... azért maradjunk annyiban, hogy ez annál végül is egyszerűbb feladat, szóval remélem középiskolás szinten elfogadható a magyarázatom/megoldásmenetem, s remélem tudtam segíteni!
Ha valahol esetleg mégis elrontottam/bakit vétettem, előzetes elnézést - hisz emberek vagyunk, és mindenkivel előfordulhat... ;)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!