Răspuns :
In primul rand, conditia de la while este:
x-floor(x) != 0, scrisa matematic [tex]x - [x] \neq 0[/tex] sau [tex] \{x\} \neq 0 [/tex]
In while ai x *= 10, deci se va executa o data pentru fiecare cifra dupa virgula, si in b tii minte la ce numar trebuie sa imparti x(la final) ca sa obtii x-ul initial.
[tex]a = x_f \implies x_i = \frac{a}{b}, a,b \in \mathbb{N}, b \neq 0[/tex]
Acum ti se cere sa afli o pereche de numere (a, b), cu [tex]\frac{a}{b} = x[/tex] si [tex]|a-b|[/tex] minim.
Cum
[tex]\frac{ya}{yb} = \frac{a}{b} = x, (\forall)y \in \mathbb{Q}^*_+[/tex], rezulta ca trebuie sa cautam un y pentru care diferenta [tex]|ya - yb|[/tex] este minima, dar in acelasi timp [tex]ya, yb \in \mathbb{N}[/tex], si atunci perechea (ya, yb) este solutia cautata.
[tex]\displaystyle |ya - yb| \in \mathbb{N} \iff y|a-b|\in \mathbb{N}\\ \\ |a - b| \in \mathbb{N} \implies y = \frac{k}{cmmdc(a, b)}, k \in \mathbb{N}^*\\ \\ |ya-yb| \: minim\\ \\ \iff y|a-b|\: minim\\ \\ \iff \textrm{y minim} \iff k = 1 \implies y = \frac{1}{cmmdc(a, b)} \implies ya = \frac{a}{cmmdc(a,b)}, yb = \frac{b}{cmmdc(a,b)}[/tex]
Deci (a/cmmdc(a,b), b/cmmdc(a,b)) este solutia cautata
Vă mulțumim că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Dacă aveți întrebări sau nevoie de asistență suplimentară, nu ezitați să ne contactați. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!