Java [1242]

Zapisz się
Dodaj kartkę Dodaj bana
Powód wlepienia kartki
Wybierz wątek docelowy z listy lub wpisz jego ID
  • Brut[all]

    Przepraszam za tak głupie pytanie.. int jest jednobajtowy?
    Tak, jak pisałem, w Javie nie programuję, ale jednak w większości języków ma co najmniej 2 bajty.
    A spooore by to musiały być liczby, aby doszło do 255.

    A wartość z Twojego przykłądu - 211, nie powinna, o ile mi się dobrze wydaje, sprawić problemu - liczba jedności z tej liczby zostanie, a "wyżej" zostanie przekazane 21, z czego znów dwójka jeszcze wyżej.
  • Anonim

    nie po prostu ja myslalem ze w tablicy przechowujemy bajty
    ale to nie ma znaczenia
    obojetnie jak duze to by musialy byc liczby to i tak zawsze mozna takie znalezc.
    W sumie takie teoretyczne gdybanie.
    Muszą być podane dokładne założenia co do zadania żeby mozna było to wszystko określić.
  • Brut[all]

    > A spooore by to musiały być liczby, aby doszło do > 255.

    Aby doszło do 65k; ]
    (czy 32k, jeśli to signed)
  • Anonim

    OK masz kontrprzykład:
    dla tablicy bajtów:
    wywołaj sobie swój algorytm dla mnozenia:
    np: 999999 * 999999
    dla tablicy intów: (przy zalozeniu ze jest 32 bitowy) dla np dwoch liczb skladających się z 30000000 dziewiątek (:D) (nie było w pierwszym poście założenia co do wielkości liczby)

    w obu przypadkach licznik się przekręci
  • Brut[all]

    I to, Twoim zdaniem, nie jest spora liczba?
    Chcesz powiedzieć, że na codzień liczysz coś na liczbach, które w postaci binarnej zajmują kilka MB?

    Ja zakładam praktykę, nie teoretykę :)
    I masz rację - grzebanie w teorii, to najzwyczajniejsze czepialstwo :)
  • shogun

    gdyby liczby mialy sie miescis w granicy np int'a zbedne bylo by ich rozpisywanie na tablice i mnozenie w tablicy (wynik = a*b;). po przeczytaniu tematu mozna sie latwo domyslic ze chodzi o duze liczby

    robilem kiedys wyliczanie n-tego wyrazu ciagu Fibonaciego (nie wiem dokladnie jak to sie pisze) na milionowy element czekalem prawie minute kiedy mathematica liczy to w kilka sekund. z tego co wiem to bardziej sie oplaca pisac tego typu apilkacje na wektorach
    pozdrawiam
  • Maciek Makowski

    > Aby doszło do 65k; ]
    > (czy 32k, jeśli to signed)

    int w Javie ma 32 bity.

    > robilem kiedys wyliczanie n-tego wyrazu ciagu
    > Fibonaciego (nie wiem dokladnie jak to sie pisze)
    > na milionowy element czekalem prawie minute
    > kiedy mathematica liczy to w kilka sekund.

    Moze Mathematica uzywa wzoru Bineta albo czegos w tym stylu?
    http://www.mcs.surrey.ac.uk/Persona...

    > z tego co wiem to bardziej sie oplaca pisac tego
    > typu apilkacje na wektorach

    Na jakich wektorach? Chodzi Ci o wektorowe instrukcje w CPU?

  • spec

  • spec

    > Na jakich wektorach? Chodzi Ci o wektorowe
    > instrukcje w CPU?

    Na jakich wektorowych instrukcjach w CPU ?Chodzi Ci o SSE, MMX i 3DNow!?

    :PP
  • shogun

    chodzi o instrukcje ktore sa wykonywane bezposrednio przez procesor przez co sa o wiele szybsze ale dokladnie nie wiem z czym sie to je (wstyd). z tego co wyczytalem to wzor Bineta przy duzych liczbach moze sie mylic wiec raczej nie jest stosowany w mathematice ale trzeba by doczytac.

    proponuje poczytac o "tajemniczych wektorach" gdyz moze to o wiele skrocic czas wykonywania sie algorytmu
  • shogun

    hehe tak sie wlasnie zastanawialem no i wydumalem
    i nawet nie trzeba pisac algorytmu ludzie przeciez to java :)

    http://java.sun.com/j2se/1.4.2/docs...

    mnozenie duzych liczb wbudowane

    10^(wielkosc int 32-bit) to chyba daje nam wystarczajaco duza liczbe

    no chyba ze chodzi o to zeby napisac wlasny algorytm...
  • Maciek Makowski

    > Na jakich wektorowych instrukcjach w CPU
    > ?Chodzi Ci o SSE, MMX i 3DNow!?

    Myślałem raczej o prawdziwych instrukcjach wektorowych, jak tych w procesorach Cray czy VAX. Ale, jak rozumiem, na potrzeby stwierdzenia, do którego to się donosiło, SIMD oferowany przez te rozszerzenia chyba też wystarczy -- bo inaczej miałoby ono (stwierdzenie) niewielką wartość praktyczną.