/ 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
Hjælp en desperat studerende
Fra : Daniel Pino Maldera


Dato : 06-05-01 16:08

Hvis i har set min post "hjælp til hashtable..." så står der nogenlunde hvad
mit problem er.
Jeg har besluttet mig for at lave en HashTable hvor den hvert bogstav i en
tekststreng skal have sit eget index. Men kan jeg bare skrive:

HashTable ht = New HashTable (protein);

hvor "protein" er navnet på min teksstreng, den består af 250 tegn, alle
sammenhængende. Altså ikke selvstændige strings.

Når det er gjort skal jeg tildele en værdi til hver af disse index,
bestående af 3 små bogstaver (a,c,g eller t). Jeg forestiller mig ca.
følgende:

ht.put("H","gct");

Til sidst vil jeg tjekke om samme følge af 3 små bogstaver bliver refereret
til af samme index.
Den er jeg i tvivl om hvordan skal laves.

Alle forslag er velkomne.
Jeg har tidligere fået et forslag om at bruge suffix tree, men det vil jeg
ikke følge, da jeg ved det kan laves med HashTable.

Venligst DPM



 
 
Lars Dam (07-05-2001)
Kommentar
Fra : Lars Dam


Dato : 07-05-01 09:29

On Sun, 6 May 2001 17:07:34 +0200, "Daniel Pino Maldera"
<dmaldera@hotmail.com> wrote:

>Hvis i har set min post "hjælp til hashtable..." så står der nogenlunde hvad
>mit problem er.
>Jeg har besluttet mig for at lave en HashTable hvor den hvert bogstav i en
>tekststreng skal have sit eget index. Men kan jeg bare skrive:
>
>HashTable ht = New HashTable (protein);

1) hvis du læste op på hvordan en hashtable fungerer i java, så har du
langt bedre mulighed for at se om det er noget du kan bruge (det var
bare lidt 'flame' over at du ikke selv undersøger sagen før end du
spørger)

>hvor "protein" er navnet på min teksstreng, den består af 250 tegn, alle
>sammenhængende. Altså ikke selvstændige strings.

Dvs:

String protein="ABCD..HH"; // 250 tegn

>Når det er gjort skal jeg tildele en værdi til hver af disse index,

Jeg tror du misforstår hashtable - der er ikke index i hashtables.
Men altså (for at jeg forstår det ret), hvert tegn i 'protein',
tildeles en sekvens af 3 små bogstaver (acgt)?

Eller med andre ord, du skal for hver entydig forekomst af de 250 tegn
tildele et sæt af tre-bogstavs sekvenser, lidt a:

A={'cgt','agt','cta'}
B={'cat','tac'}
:
:
Z={...}

og så skal du checke om et element i A ikke forekommer i B..Z, og
elementer i B ikke forekommer i A,C..Z osv?

Hvis dette er korrekt, så kan en løsning være:

Hashtable ht = new Hashtable;

for hver element 'A', med et sæt 'xyz', gør:

// check om sættet 'xyz' tilhører 'A'
if( ht.get('xyz')==null ){
// sættet fandtes ikke
// gem sættet
ht.put('xys','A'); // sættet bliver brugt af A   
}else if( ht.get('xyz')!='A'{
// sættet bliver brugt af et andet element end A
// derfor fejl!
}else{
// sættet bliver brugt af 'A' i forvejen, og så er det ok!
}

Da entries i hashtable har en unik værdi, så kan du bruge dine 'sæt'
som entries, da de kun kan have et unikt element.

>bestående af 3 små bogstaver (a,c,g eller t). Jeg forestiller mig ca.
>følgende:
>
>ht.put("H","gct");
>
>Til sidst vil jeg tjekke om samme følge af 3 små bogstaver bliver refereret
>til af samme index.

Det finder du ud af under indsætning af elementerne.
Hvis du vil vente til bagefter, kan du istedet for at indsætte
elementet, indsætte en vector som har de elementer der bliver bruger
sættene, og så bagefter løbe din hashtables vectorer igennem, og se om
der er vectorer der har en størrelse større end 1.

>Den er jeg i tvivl om hvordan skal laves.
>
>Alle forslag er velkomne.

Håber du kan bruge det. Hvis ikke du får andre forslag, er det nok
fordi din problemstilling ikke er helt tydelig

>Jeg har tidligere fået et forslag om at bruge suffix tree, men det vil jeg
>ikke følge, da jeg ved det kan laves med HashTable.

Hvorfor spørger du så?

>Venligst DPM
>


vh. ld
--
"Time is the fire in which we burn"

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

Månedens bedste
Årets bedste
Sidste års bedste