eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPorównywanie ułamków zwykłychRe: Porównywanie ułamków zwykłych
  • Data: 2010-09-24 02:15:44
    Temat: Re: Porównywanie ułamków zwykłych
    Od: Mariusz Marszałkowski <m...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 24 Wrz, 02:09, bartekltg <b...@g...com> wrote:
    > On 23 Wrz, 13:21, "Wojciech \"Spook\" Sura" <spook"mad@hatter"op.pl>
    > wrote:
    >
    >
    >
    > > Dnia 22-09-2010 o 22:04:18 nightwatch77 <r...@g...com>  
    > > napisał(a):
    >
    > > >> Dodam jeszcze, że nie satysfakcjonuje mnie wykorzystanie typu o  
    > > >> większej precyzji, np. long long int. Równie dobrze możemy przyjąć, że  
    > > >> licznik i  mianownik są typu long long int i że mianowniki są z górnej  
    > > >> granicy tego zakresu.
    >
    > > > a jak ktoś wymysli rozwiązanie to wtedy dodasz jeszcze że chodzi o
    > > > takie które używa tylko bitowego przesuwania w lewo, czy już koniec
    > > > wymagań?
    >
    > > Ograniczenie obliczeń do zakresu long inta od początku było jedynym  
    > > wymaganiem. Po prostu stosowanie w takim przypadku long long inta jest  
    > > ominięciem a nie rozwiązaniem problemu (abstrahując od faktu, że być może  
    >
    > Ktoś pisał: zaimplementuj dowolna precyzje. Albo uzyj ulamkow
    > z GMP.
    >
    > > będę korzystał w moim programie właśnie z long long intów zamiast z long  
    > > intów, a long long long inta nie ma :) ).
    >
    > gcc ma na maszynach 64 bitowych typ __int128_t.

    Jeśli dobrze zrozumiałem, OP chodziło o to że program
    może być napisany na dowolnym typie, np. na takim dużym od
    którego już większego typu wbudowanego nie ma. Wtedy
    pozostaje GMP, albo rozbicie jednej zmiennej na... chyba
    aż na trzy trzeba.
    Jeśli jest:
    a*d - b*c == 0
    to każdą zmienną można wyrazić jako:
    x = jedna_trzecia_bitow
    a = a_3*2^(x*2) + a_2*2^x + a_3

    wtedy mnożymy w słupku:
    a_3 a_2 a_1
    x d_3 d_2 d_1
    --------------------------
    1x3 1x2 1x1
    2x1 2x2 2x3
    3x1 3x2 3x3

    Obojętnie jakiego typu użyje to zadziała. Trzeba oczywiście
    specjalnie obsłużyć bit znaku.

    Pozdrawiam

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: