Dzielenie dużych liczb binarnych

0

Witam
Ma ktoś jakis pomysl jak podzielic liczbe binarna (np 50 znakowa) przez druga liczbe binarna(np 30 znakowa)? Zwykla metoda dzielenia liczb binarnych nie da rady bo i tak i tak liczby sa za dlugie... Potrzebuje otrzymac wynik w postaci binarnej btw

0

najłatwiej na string'ach. Możesz też napisać własną klasę obsługi takich liczb.

0

Chcesz powiedziec ze nie ma zadnej drogi na skroty?;/ Napisanie takiego algorytmu zajeloby strasznie duzo czasu. Musialbym nauczyc komputer odejmowac pisemnie dodatkowo

0

tak to chcę powiedzieć, chyba wyraziłem się jasno? Czy to jest trudne? Dla kogoś kto zna algorytm dzielenia czy odejmowania pisemnego ( bo tak najłatwiej i wystarczająco "do domowych" zastosowań implementuje się arytmetykę dużych liczb ) oraz zna takie pojęcia jak metoda porównawcza, metoda restytucyjna czy metoda nierestytucyjna zaimplementowanie takiego algorytmu nie powinno stanowić problemu. Gdybyś czas, który marnujesz na wielkie dziwienie przeznaczył na rozwiązanie problemu dawno byś to napisał, albo znalazł lepsze rozwiązanie. Pytałeś czy ktoś ma jakiś pomysł więc odpowiedziałem, że mam i napisałem jaki.

0

Zależy jak długie mają być te liczby. Jeżeli zmieścisz się zawsze w 64 cyfrach to nie trzeba pisać arytmetyki dużych liczb. long long int powinien wystarczyć (64bity). Jak dłuższe to niestety nic nie poradzisz i zostaje pisanie tego, albo skorzystanie z jakiejś gotowej biblioteki.

0

Nie podałeś języka. We właściwie wybranym języku wygląda to tak:

iloraz=0b11111111111111111111111111111111111111111111111000000000000001010101010100101111111111111111111111111111/0b1111111111111111111000000000000000111000000000000000011
0

To nieoptymalne, ale proste. Emulujesz liczby na tablicy np. zmiennoprzecinkową w IEEE 745, 64bit i dopisać algorytm, a to nie takie trudne. Jednak z pewnością już gotowe biblioteki są do tak wielkich liczb.

1 użytkowników online, w tym zalogowanych: 0, gości: 1