Gå til innhold

Generere ord


Gjest Slettet-i6XWZnn85h

Anbefalte innlegg

Gjest Slettet-i6XWZnn85h

Eg vil lage ulike ord av både store og små bokstave og tall fra 0 til 9

abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ1234567890

 

 

Å eg hat funne ut ein måte eg tru eg grei å gjøre dette på.

 

Hvis man legger hver bokstav /tall inn slik

 

$array[’1’] = ”1”

$array[’2’] = ”2”

 

 

Heilt opp til alle ord og bokstaver er brukt opp..

Med alle store og små bokstaver å tall så har man 68 stykk.

 

Så starter problemet mitt då.

 

Sånn som eg he tenkt å løyse dette bli som ein kodelås.

Her ska eg løyse eit ord på 4 siffer så begynner eg sånn som dette:

 

1-1-1-1

 

De tallene er nummeret i arrayen.

 

Så kommer 1-1-1-2 så 1-1-1-3 heilt til den er på 1-1-1-68.

 

Etter at den har gjort dette så går den slik som dette

 

1-1-2-1 så 1-1-2-2 til slutt så er den på 1-1-2-68.

 

skjønner dere hva eg meinere med dette?

Noen som har ein grei måte å løyse denne på?

 

For hvert ord den lager så legger eg det inn i ein ny array. Og for hver gang den passerer 68 ord så skal alle ordene settes inn i ein mysql database så fjernes ordene fra arrayen å fortsetter på å generere ord.

 

Er det noen som kan komme med noen forslag på hvordan eg kan løse dette?

Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet-i6XWZnn85h

Kan egentlig veldig lite ang andre språk.. Men hva lønner seg da? c++? å det er ikkje for å finne på noe som allerede finnes. det er for lære.

 

Men veit du om noe som allerede eksisterer så spør vil eg se det om du ønsker å dele det?

Endret av Slettet-i6XWZnn85h
Lenke til kommentar

Sa du ikkje 0-9?

Du seier 1-1-1-68.

Det blir vel berre 1-1-1-9.

Viss det er slik, så er det 9^4=59049 kombinasjoner. (med berre tal, viss eg ikkje har rekna feil. :))

Scriptet vil vel helde på så lenge at du må endre max-kjøretid viss du skal bruke PHP?

Lenke til kommentar

Kanskje dette kan hjelpe..

 

<?php
$CFG['charset']   = "abcdefghijklmnopqrstuvwxyz1234567890";
$CFG['strlen']    = 4;


$CALC['lastpos']   = strlen($CFG['charset']);
$CALC['noStrings'] = pow($CALC['lastpos'],$CFG['strlen']);

for($i=0; $i<$CFG['strlen']; $i++) {
       $CALC['char'][$i]['pos']=0;
       if($i>0) {
           $CALC['char'][$i]['int']=pow($CALC['lastpos'],$i);
       } else {
           $CALC['char'][$i]['int']=0;
       }
       $CALC['char'][$i]['inc']=0;
}

$allStrsings=array();


print_r($CALC);
print_r($CFG);
echo "Looks OK? Press CTRL+C to abort.. starting in 2 seconds..";
sleep(2);
echo "\nStarting:\n";


for($i=0; $i<$CALC['noStrings']; $i++) {
   $str = "";
   reset($CALC['char']);
   while(list($id, $charData)=each($CALC['char'])) {
       $str .= substr($CFG['charset'], $CALC['char'][$id]['pos'],1);
       $CALC['char'][$id]['inc']++;
       if($CALC['char'][$id]['inc']>=$CALC['char'][$id]['int'])     {
           $CALC['char'][$id]['pos']++;
           $CALC['char'][$id]['inc']=0;
       }
       if($CALC['char'][$id]['pos']>=$CALC['lastpos']) {
           $CALC['char'][$id]['pos']=0;
       }
   }
   echo $str."\n";       
   $ii=$i+1; 
      
}
?> 

 

Bare noe jeg laget for lengesiden (litt modifisert).

 

Skjønner ikke hva som er så gale å bruke PHP til slike ting.. fungerer utmerket.. ;)

Endret av xqus
Lenke til kommentar
Gjest Slettet-i6XWZnn85h

herlig! det fungere jo perfekt!

Grunnen til at man ikkje brurde å bruke php er at det finnes mange andre raskere språk som egner seg for sånne ting.. som kan generere opp til 5 mill ord i sek på denne lille maskinen min.

 

men dette er supert.

 

Lure på hvordan eg kan begynne på eeee? må eg bare forfalske $i?

Endret av Slettet-i6XWZnn85h
Lenke til kommentar
Gjest Slettet-i6XWZnn85h

Selfølgelig gjør eg det ;)

 

Genialt at man får opp hva den holder på med øyeblikelig.. kan sitte å se på ordene den generere ;)

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...