
#programowanie #programista15k #programista #matematyka
Mam zaćmienie mózgu może pomożecie, bo nawet nie wiem jak o to spytać googla. Zawiesiłem się pisząc program na wydaje mi się prostej rzeczy, a mianowicie: jako wynik mogę dostać liczbę zmiennoprzecinkową np. 0.5 jak sprawdzić (nie iterując od 0 do nieskończoności) przez, co pomnożona ta liczba da liczbę całkowitą, gdzie ten mnożnik będzie najmniejszą z możliwych liczb spełniającą tą zależność (oczywiście wiem że są takie które nie dadzą nigdy liczby całkowitej) czyli jak dla przykładowej 0.5 dostać liczbę 2 przez którą pomnożone 0.5 daje liczbę całkowitą ?
Mam zaćmienie mózgu może pomożecie, bo nawet nie wiem jak o to spytać googla. Zawiesiłem się pisząc program na wydaje mi się prostej rzeczy, a mianowicie: jako wynik mogę dostać liczbę zmiennoprzecinkową np. 0.5 jak sprawdzić (nie iterując od 0 do nieskończoności) przez, co pomnożona ta liczba da liczbę całkowitą, gdzie ten mnożnik będzie najmniejszą z możliwych liczb spełniającą tą zależność (oczywiście wiem że są takie które nie dadzą nigdy liczby całkowitej) czyli jak dla przykładowej 0.5 dostać liczbę 2 przez którą pomnożone 0.5 daje liczbę całkowitą ?
- Najlepsze
- Wszystkie komentarze







Mantysa jest z zakresu [1, 2]. Liczysz jak długie jest ułamkowe rozwinięcie binarne mantysy (dajmy na to N). Liczba przez która potrzebujesz pomnozyc to 2 ^ (max(N - E, 0)).
Złożoność stała dla dowolnej liczby zmiennoprzecinkowej.
Z twojego przykladu:
0.625 -> 625/1000 -skracamy-> 5/8
8 to
Komentarz usunięty przez autora
0.5 * 10 = 5
5/5 = 1
if (wynik == int(wynik))
Komentarz usunięty przez autora