Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ciąg Znaków
Forum PHP.pl > Forum > Przedszkole
grzybowski11
Potrzebuje kodu który wyświetli mi wszystkie możliwości jakie ma 9 znakowy ciąg w którym zawarte będą liczby 0-9 oraz litery a-z bez polskich znaków tak aby w ciągu znaki obok siebie nie powtarzały się.
peterj
  1. <?php
  2.  
  3. $znaki=&#092;"A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l
    ,
  4. ,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9,0\";
  5. $znaki_array=explode(\",\", $znaki);
  6. srand((double)microtime()*1000000);
  7. for ($count=1;$count<=9;$count++) {
  8. printf(\"%s\",$znaki_array[rand()%62]);
  9. }
  10. ?>

W ten sposób będzie kod będzie 9-znakowy i bedzie zawierał litery a-z + A-Z + 0-9
Na forum między " A oraz i, j, chyba powstała spacja usuń ją przy wklejaniu kodu bo potem w tym ciągu znaków będą spacje :]

Ups jednak sie powtarzają czasem znaki sad.gif
popbart
Cytat
Potrzebuje kodu który wyświetli mi wszystkie możliwości jakie ma 9 znakowy ciąg w którym zawarte będą liczby 0-9 oraz litery a-z bez polskich znaków tak aby w ciągu znaki obok siebie nie powtarzały się.
blink.gif
Może nie jestem dobry z matmy ale możliwości to będzie ładnych parę milionów(jak nie więcej).
Cytat
W ten sposób będzie kod będzie 9-znakowy i bedzie zawierał litery a-z + A-Z + 0-9
Jemu chyba chodziło o wszystkie możliwości winksmiley.jpg
pzdr
peterj
Cytat
Jemu chyba chodziło o wszystkie możliwości

:] chodzi o to aby w wygenerowanym ciągu nie powtarzały się te same znaki np: D2D5hdc -> D występuje dwa razy a powinno jeden raz. Chyba o to chodzilo winksmiley.jpg ?!
zYm3N
NIe, Tylk oobok siebie mają się nie powtarzać.
grzybowski11
Chodzi mi oto aby skrypt nie generował za każdym wywołanie ale wyświetlił jeden kod pod drugim i aby niepowtarzły sie kody ani znaki obok siebie np.
2ks4o6mc1 - może być wyświetlony tylko raz
00ksmw0z2 - nie może być wyświetlony ponieważ zawiera obok siebie dwa zera
Paul
Witam, postanowilem wyliczyc ile to mozliwosci z drobnym uproszczeniem - uwzglednilem, ze dane znaki nie beda sie w ogole powtarzac, a nie tylko obok siebie (tak by wyszlo "troszke" wiecej tongue.gif)...

Uzylem wariacji bez powtorzen - k = 9; n = 36;

Cytat(popbart @ 2004-09-02 19:40:55)
Może nie jestem dobry z matmy ale możliwości to będzie ładnych parę milionów(jak nie więcej).

No troszke wiecej:

34 162 713 446 400

A idac dalej:

34 162 713 446 400 * 9 bajtow = 307 464 421 017 600 / 1024 / 1024 / 1024 = ok. 286 349 GB smile.gif

Mozna by jeszcze wyliczyc czas generacji ale nie wiem ile na sekunde by sie takich ciagow generowalo, ale i tak smiem twierdzic, ze troche by to potrwalo smile.gif

PS. Jak sie myle to mnie poprawcie, bo nie jestem takze jakims fanem matmy, ale chcialem sobie przypomniec jak sie to robilo smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.