Gå til innhold

Hvordan lage et stort - KJEMPESTORT - array?


Anbefalte innlegg

Videoannonse
Annonse

Jeg tror den øvre grensen ligger på omtrent 2.147.483.648 elementer. Grunnen til dette er fordi VB bruker LONG for å lagre mengden av elementer i en array og den høyeste verdien en LONG kan lagre er +2.147.483.648.

 

En array bestående av bare LONG vil da kunne holde på 8 GB med data, noe som etter min mening er mer en nok i dag. De fleste har uansett ikke så mye RAM at det gjør noe.

Lenke til kommentar

Hmmm. Det er faktisk ikke nok. Jeg skal prøve å skrive noe som plukker ut beste / mest rettferdige kombinasjon av prioriterte valg (30 personer som får 3 valg hver). Uheldigvis tilsvarer det 3^30 = 2.0e14 kombinasjoner. :wow:

 

To ganske store ulemper melder seg da:

1. det tilsvarer et array på nærmere 30 terabytes hvis jeg ikke tar helt feil. Og det er hvis hvert element er en integer... jeg må kanskje representere innholdet i kombinasjonen, antagelig med en 60 lang string...

2. Gjennomgangen av 2.0e14 kombinasjoner vil vel ta nærmere et år på en valig PC, selv i C++?

 

edit: hvis jeg gjetter på at maskinen går igjennom en million kombinasjoner i sekundet, vil utregningen ta 6,5 år. Går bare man opp til 35 personer med 4 valg, tar det 37 millioner år! Ser ut til at det er mye å tjene på å finne noen snarveier eller heuristikker.

Endret av Onkel
Lenke til kommentar
  • 4 måneder senere...

Jeg tenker sjakkprogrammering når jeg så Innlegget ditt. Her har man jo etterhvert utviklet endel metoder for å korte ned på søketiden. Kanskje kan noe av dette være brukbart for deg? "chess programming" på google kan kanskje hjelpe deg på vei.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...