/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
største array type og alternativ l
Fra : Kim Schulz


Dato : 12-06-02 15:33

hejsa
jeg skal til at beregne med nogle meget store talt (på bitniveau) og vil
derfor gerne vide hvor store de største arrays i java kan blive - altså
antal elementer.
Hvert element skal kun indeholde en bit. Hvilken type ville være
smartest at bruge?

hvis nu jeg vil representere et bitarray på en anden måde (hvis antal
elementer ikke er højt nok eller for at begrænse hukommelsesforbrug).
hvordan laver jeg så den længst mulige representation af et bitarray ?
f.eks.
int foo[4]={1,0,1,0} svarer til 1010 på bitniveau.
hvilken type kan indeholde flest bits (hvor det er muligt at tilgå dem
direkte) er det BigInteger? long? String?
håber nogen kan hjælpe mig

--
Kim Schulz - Freelance Development | You have mail.
www.schulz.dk - En nørds bekendelser |
www.linuxia.dk - hverdagens små hacks |

 
 
Thorbjoern Ravn Ande~ (12-06-2002)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 12-06-02 15:42

Kim Schulz <kim@schulz.dk> writes:

> Hvert element skal kun indeholde en bit. Hvilken type ville være
> smartest at bruge?

Hvad skal du lave?
--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

N/A (12-06-2002)
Kommentar
Fra : N/A


Dato : 12-06-02 16:16



Thorbjoern Ravn Ande~ (12-06-2002)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 12-06-02 16:16

Kim Schulz <kim@schulz.dk> writes:

> bl.a. primtalsberegning af primtal i størrelsesordnen BigInteger. Det
> skal bruges til noget krypteringsrelateret og det med at hoppe over hvor
> gærdet er lavest og bruge færdige krypteringselementer fra Java er ikke
> tilladt (da den matematiske del af opgaven er den primære).

Kan du ikke bare lave et array af boolean? eller byte?

Jeg mener arrayindekseringer er 32-bit.

Vaer forberedt paa at det nok ikke koerer saerlig hurtigt.
--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Morten (12-06-2002)
Kommentar
Fra : Morten


Dato : 12-06-02 15:50

Kim Schulz wrote:
> hejsa
> jeg skal til at beregne med nogle meget store talt (på bitniveau) og vil
> derfor gerne vide hvor store de største arrays i java kan blive - altså
> antal elementer.

Man indekserer på integers, så det er vel java.lang.Integer.MAX_VALUE
(2^31-1) elementer.

> Hvert element skal kun indeholde en bit. Hvilken type ville være
> smartest at bruge?

Et array af boolean.

> hvis nu jeg vil representere et bitarray på en anden måde (hvis antal
> elementer ikke er højt nok eller for at begrænse hukommelsesforbrug).
> hvordan laver jeg så den længst mulige representation af et bitarray ?
> f.eks.
> int foo[4]={1,0,1,0} svarer til 1010 på bitniveau.
> hvilken type kan indeholde flest bits (hvor det er muligt at tilgå dem
> direkte) er det BigInteger? long? String?
> håber nogen kan hjælpe mig

Jeg vil anbefale dig at arbejde med BigInteger, specielt hvis det er
i krytografisk øjemed. Der findes også java.util.BitSet. Du må komme
med flere detaljer om applikationen hvis du skal bruge flere tips :)

Mvh Morten




Kim Schulz (12-06-2002)
Kommentar
Fra : Kim Schulz


Dato : 12-06-02 15:56

[snip]
> Jeg vil anbefale dig at arbejde med BigInteger, specielt hvis det er
> i krytografisk øjemed. Der findes også java.util.BitSet. Du må komme
> med flere detaljer om applikationen hvis du skal bruge flere tips :)

se andet post her i gruppen


--
Kim Schulz - Freelance Development | Darth Vader sleeps with a
www.schulz.dk - En nørds bekendelser | Teddywookie.
www.linuxia.dk - hverdagens små hacks |

Kim Schulz (12-06-2002)
Kommentar
Fra : Kim Schulz


Dato : 12-06-02 16:30


> Kan du ikke bare lave et array af boolean? eller byte?

> Jeg mener arrayindekseringer er 32-bit.

hvilket jo ikke er ret meget!


> Vaer forberedt paa at det nok ikke koerer saerlig hurtigt.

hvad er så den optimale løsning?
funktionen kunne se således ud (skrevet ud fra hukommelsen og er sikkert
ikke helt rigtig):

private int[] isprim;

public int[] sieve(int SIZE){
   isprim = new int[SIZE];
   int i=0, j=0,step=0;
   for (i = 0; i < SIZE; i++) isprim[i] = 1;
   for (i = 0; i < SIZE; i++)
    if (isprim[i]) {
       for (j = 3*i+3, step = 2*i+3; j < SIZE; j += step)
          isprim[j] = 0;
    }   

   return isprim;

}


det er int[] isprim jeg skal have lavet til noget der har flere
elementer .

--
Kim Schulz - Freelance Development | "The point is that I am now a
www.schulz.dk - En nørds bekendelser | perfectly safe penguin!"
www.linuxia.dk - hverdagens små hacks |

Thorbjoern Ravn Ande~ (12-06-2002)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 12-06-02 16:38

Kim Schulz <kim@schulz.dk> writes:

> > Jeg mener arrayindekseringer er 32-bit.
>
> hvilket jo ikke er ret meget!

Ikke? Hvor meget skal du da bruge?

> > Vaer forberedt paa at det nok ikke koerer saerlig hurtigt.
>
> hvad er så den optimale løsning?

Definer optimalt.

> funktionen kunne se således ud (skrevet ud fra hukommelsen og er sikkert
> ikke helt rigtig):
>
> private int[] isprim;
>
> public int[] sieve(int SIZE){

Eftersom jeg regner med at du skal blive faerdig i aar, skulle 32 bit
nok vaere rigeligt til dén algoritme.


--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste