Avatar billede conrad Nybegynder
02. december 2002 - 12:16 Der er 1 kommentar og
2 løsninger

kan det gøres smartere?

Jeg skal implementere et cognitive map og skal derfor finde ud af om en given vector allerede er blevet beregnet.

algoritmen er (forenklet)som følger:
1) gang en vector med en matrix og få en ny vector
2) se om denne vector allerede er blevet beregnet
ja: et loop er fundet og vi er færdige
nej: brug den nye vector i 1)

vectorren bliver representeret som et double array af vilkårlig længde

Min ide er at lave vectoren om til en string, gemme den i en hashtabel og så slå op i tabellen hver gang en ny vector er fundet. Får jeg andet en null må vectoren være beregnet tidligere.

er der nogen der kan gennemskue om dette er en holdbar metode eller om det kan gøres smartere?



vectoren er representeret som double arrays a vilkårlig længde.
Avatar billede arne_v Ekspert
02. december 2002 - 12:21 #1
Nu skal du vel ikke bruge Hashtable/HashMap men
snarere  HashSet (du har jo ikke nogen værdi du vel gemme).

Men ellers bør det virke.

Hvis dine arrays er store og mange kan der hurtigt
blive brugt meget memory, men det må være uundgåeligt
med den givne problem-stilling.
Avatar billede carstenknudsen Nybegynder
02. december 2002 - 12:27 #2
Du behøver ikke at omdanne din double array til
en String, double[] er et Object og det kan bruges
som key i din HashMap direkte.
HashMap map = new HashMap();
double[] a = new double[] {1,2,3};
map.put(a,"1");
Hvis man ikke ved mere om de double arrays som
du beregner så lyder det som en udemærket løsning.
Avatar billede conrad Nybegynder
03. december 2002 - 09:26 #3
tak, der var faktisk lige lidt "guld" i begge jeres svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester