09. december 2003 - 00:01
Der er
33 kommentarer og 1 løsning
løkke der genere alle kombinationer udfra tegn
Er der nogen der har et script at ligge som generer alle kombinationer ud fra alfabetet + tal + specialtegn som de vil af med??
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
09. december 2003 - 00:03
#1
det skal køre i en løkke så man ikke skat indtaste manuelt
09. december 2003 - 00:04
#2
Præcis hvad er det du gerne vil have, kan du give et uddybende eksempel ?
09. december 2003 - 00:08
#3
Ja da. scriptet skal først tage a og så smide kombinationerne af det i db bagefter ab, abc, abcd, abcde osv osv osse med specialtegn så som !"#¤%&/()=@£$€{[]}+ osv 1234567890 Kan det lade sig gøre??
09. december 2003 - 00:15
#5
skriver dem lige her qwertyuiopåasdfghjklæøzxcvbnm QWERTYUIOPÅASDFGHJKLÆØZXCVBNM 1234567890 !"#¤%&/()=?@£${[]}+*-.,-_´` dem
09. december 2003 - 00:15
#6
Hvordan vil du have dem placeret i din db ?
09. december 2003 - 00:19
#7
bare i en tabel er og hvis det kan lade sig gøre i alfabetisk rækkefølge
Slettet bruger
09. december 2003 - 00:22
#8
Jeg har sikkert misforstået, men hvis du vil have bare alle mulige 10-bogstavskombinationer, hvor der er forskel på små og store bogstaver fylder det ca. 430 millioner gigabyte. Og så har jeg ikke engang taget tal og specialtegn med eller kombinationer med færre end 10 tegn.
09. december 2003 - 00:23
#9
ER DET RIGTIGT ???
09. december 2003 - 00:25
#10
"ca. 430 millioner gigabyte" - Det er noget af en gevaldig database der skal til ;o)
09. december 2003 - 00:26
#11
hvor mange kombinationer er der med 10 tegn
09. december 2003 - 00:27
#12
Her er et eksempel der indsætter små bogstaver og tal i databasen, du kan selv udvide den ved at fylde på strengen. Sorteringen bør du lave i strengen. $string = 'abcdefghijklmnopqrstuvwxyzæøå1234567890'; for ($i = 1; $i <= strlen($string); $i++) { $kombination = substr($string, 0, $i); // Herefter skal du indsætte $kombination i din db. } Den inssætter først: a ab abc abcd osv. Er det sådan noget ?
09. december 2003 - 00:28
#13
Ja, hvis du skal have alle kombinationer, så er der mange :P
09. december 2003 - 00:29
#14
$dit_alfabet = "abcdefghijklmnopqrstuvwxyz"; // tilføj hvad andre tegn du vil have. $antal = strlen( $ditalfabet ); function lavstrenge( $indtil_nu, $antal ) { for ( $i=0; $i<$antal; $i++ ) { if ( strpos( $indtil_nu, $dit_alfabet{ $i } ) === false ) { if ( $antal > 1 ) { lavstrenge( $indtil_nu .= $dit_alfabet{ $i }, $antal-1 ); } else { echo " " .$indtil_nu . $dit_alfabet{ $i }; // udskriv resultat } } } } //endfunction //nu kan du kalde lavstrenge med en tom streng og abtallet af bogstaver i den ønskede streng: lavstrenge( "", 4 ); // uddskriver alle strenge der er 4 bogstaver lange bemærk at der er 3 lighedstegn i === i første if betingelse. Og pas på med at bruge for store tal som anden parameter. der er MANGE mulige strenge mvh JakobA
09. december 2003 - 00:29
#15
ja det er så noget prøver mig frem med
09. december 2003 - 00:29
#16
Hvad skal du bruge det til ?
Slettet bruger
09. december 2003 - 00:31
#17
Hvis googolplex har lavet det rigtigt, er der naturligvis tale om en noget mindre database. Det var netop fordi det gav så uhyrligt mange kombinationer, jeg regnede med at jeg havde misforstået. Jeg havde forresten glemt at gange med 10, fordi der var 10 tegn i hver kombination, så det ville blive 4,3 milliarder gigabyte.
09. december 2003 - 00:32
#18
Ja, sådan som han har forklaret det i begyndelsen er der ikke vildt mange, men hvis man skal alle kombinationer med, av for den :P
09. december 2003 - 00:37
#19
Det skulle gene være alle kombinationer :-( Men eftersom jeg ikke har råd til at tømme midtdata.dk for hdd kan det nok ikke lade sig gøre :-( Kan i prøve at lave et eks som smider alle kombinationerne i af bare 4 teg så kan jeg selv prøve mig frem jacobA dit script virker umidelbart ikke, der kommer intet output
09. december 2003 - 00:39
#20
Du kan selv udregne antal kombinationer sådan her (hvis ikke jeg tager meget fejl): <?php $a = 10; // antal tegn $x = 1; for ($i=1;$i<=$a;$i++) { $x *= $i; } echo $x; ?>
09. december 2003 - 00:43
#21
hmm ved 50 tegn 3.0414093201713E+64 og hvad fylder et tegn NEJ NEJ kan god set det bliver noget rod :-O Men vil godt prøve mig frem stille og roligt hvis i stadig vil lave det?? HEHE det er en hemmelighed hvad det skal bruges til :-D
Slettet bruger
09. december 2003 - 00:48
#22
Bare for lige at illustrere. Der er 29 forskellige bogstaver. De findes som både små og store, så det giver 58 i alt. Altså er der (med bogstaver alene) 58 forskellige muligheder på 1 tegn, 58*58=3364 muligheder med 2 tegn, 3364*58=195112 muligheder med 3 tegn 195112*58=11316496 med 4 tegn osv.
Slettet bruger
09. december 2003 - 00:51
#23
Bare flyt $dit_alfabet = "abcdefghijklmnopqrstuvwxyz";-linien i Jakobs program indenfor funktionen.
09. december 2003 - 00:51
#24
Ja det ved jeg godt, men vil godt bare prøve nice and easy ;-O for at se det, vil ikke droppe det helt nu :-D
09. december 2003 - 00:55
#25
>>sandbox det vil ikke rigtigt det skal bare være nå går ind på siden skal den gå igang
09. december 2003 - 01:02
#26
>> sandbox Du har ret. men det er nok bedre at gøre $dit_alfabet og $antal globale så de kan ses fra funktionen. (så bliver de ikke oprettet een gang til hvergang den bliver kaldt).
09. december 2003 - 01:05
#27
$antal = strlen( $ditalfabet ); skal være: $antal = strlen( $dit_alfabet );
09. december 2003 - 01:05
#28
Det vil ikke køre det igennem der sker intet har det her // tilføj hvad andre tegn du vil have. $antal = strlen( $ditalfabet ); function lavstrenge( $indtil_nu, $antal ) { $dit_alfabet = "abcd"; for ( $i=0; $i<$antal; $i++ ) { if ( strpos( $indtil_nu, $dit_alfabet{ $i } ) === false ) { if ( $antal > 1 ) { lavstrenge( $indtil_nu .= $dit_alfabet{ $i }, $antal-1 ); } else { echo " " .$indtil_nu . $dit_alfabet{ $i }; // udskriv resultat } } } } lavstrenge( "", 4 );
09. december 2003 - 01:15
#29
$dit_alfabet = "abcd"; // der kan godt være mere end 4 bogstaver selvom parameteren er 4 $antal = strlen( $ditalfabet ); function lavstrenge( $indtil_nu, $left ) { // Jeg lavede en grim fejl her ved at bruge navnet $antal igen global $antal; global $dit_alfabet; for ( $i=0; $i<$antal; $i++ ) { if ( strpos( $indtil_nu, $dit_alfabet{ $i } ) === false ) { if ( $left > 1 ) { lavstrenge( $indtil_nu .= $dit_alfabet{ $i }, $left-1 ); } else { echo " " .$indtil_nu . $dit_alfabet{ $i }; // udskriv resultat } } } } lavstrenge( "", 4 );
09. december 2003 - 01:17
#30
Ups. og $dit_alfabet skal staves ens allevegne: $antal = strlen( $dit_alfabet ); // jeg har tilføjet '_'
09. december 2003 - 01:18
#31
er der noget jeg skal gøre for at starte den eller skulle det bare gå igang når man loader siden, for der sker intet :-O
09. december 2003 - 01:19
#32
Takker :-D
09. december 2003 - 01:25
#33
nå smutter i seng ligger i et svar så giver jeg point i morn hygge :-D
09. december 2003 - 18:18
#34
Det laver jo ikke om på tegnene det her script, det skriver det kun ud i alfabetisk rækkefølge :-O
Vi tilbyder markedets bedste kurser inden for webudvikling