Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Losowe generowanie ciągu liczb/cyfr
viva
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.12.2008

Ostrzeżenie: (0%)
-----


Wymyśliłem coś takiego :
CODE

<?php
$threeLetters = array();
$alphabet = range('A', 'Z');
for ($i = 0; $i < 26; $i++){
for ($j = 0; $j < 26; $j++){
for ($k = 0; $k < 26; $k++){
$threeLetters[] = $alphabet[$i] . $alphabet[$j] . $alphabet[$k];
echo($_POST['input'].$alphabet[$i].$alphabet[$j].$alphabet[$k]."");
echo("<br />");
}
}
}
?>

Jak to teraz zrepecić by generowały się również cyfry od 1 do 9 oraz znak "-" ?
Go to the top of the page
+Quote Post
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


A co chcesz zrobic jak chcesz poprostu dodac jakis wygenerowany ciag to zrob tak:
  1. <?php
  2. $hash = substr(md5(time()), 0, 4);
  3. ?>
Go to the top of the page
+Quote Post
viva
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.12.2008

Ostrzeżenie: (0%)
-----


Nie ma to być jakiś chodzi mi o ciąg przykładowo składający się z 3 znaków od a do z, od 1 do 9 oraz aby w generowaniu zawarty był też znak "-"
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jak to teraz zrepecić by generowały się również cyfry od 1 do 9 oraz znak "-" ?

A sobie kolega łaskawie popatrzy: http://pl.wikipedia.org/wiki/Ascii
Go to the top of the page
+Quote Post
ShadowD
post
Post #5





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


Nie wiem czy zrozumiałem istotę problemu, ale wydaje mi się że można by zastosować funkcję rand() zamiast tych 3xpoetli np tak:

A można i tak:
  1. <?php
  2.  
  3.  //dalne
  4.  $dlugoscCiagu=10;
  5.  $znaki=array('a','ą','b','c','ć','d','e','ę','f','g','h','i','j','k','l','ł','m','n','ń','o','ó','p','r','s','ś','t','u','w','y','z','ź','ż',1,2,3,4,5,6,7,8,9,'-');
  6.  
  7.  
  8.  
  9.  do
  10.  {
  11.    $los=rand(1,43);
  12.  
  13.    $losowyCiag.=$znaki[$los];
  14.    
  15.    $i++;
  16.  }
  17.  while($i<=$dlugoscCiagu);
  18.  
  19.  echo $losowyCiag;
  20.  
  21. ?>


EDIT:
Poprawiłem kod i dzieła... ;p

Ten post edytował ShadowD 1.12.2008, 19:47:37
Go to the top of the page
+Quote Post
viva
post
Post #6





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.12.2008

Ostrzeżenie: (0%)
-----


Działa ale nie do końca mnie zrozumieliście. Wynik tego ala skryptu ma to być ciąg wszystkich dostępnych znaków. Nie pojedyńczy wynik. ShadowD wrzuć sobie ten co ja podałem zrozumiesz o co mi chodzi. Poza tym ma być w kolejności alfabetycznej. Totalnie nie chodzi mi o jakąkolwiek optymalizacje tego. Liczy się dla mnie sam wynik.
Go to the top of the page
+Quote Post
ShadowD
post
Post #7





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


Ok mają to być wszystkie możliwości wypisania [a-z], [0-9] i [-] ułożone alfabetycznie, z maksymalną długością 3 znaków??
Go to the top of the page
+Quote Post
viva
post
Post #8





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.12.2008

Ostrzeżenie: (0%)
-----


Do tego bez powtórek, jeden wynik pod drugim - tak jak w tym co podałem, bym był wdzięczny jakbyś był skłonny przekształcić właśnie ten code co podałem ja.
Go to the top of the page
+Quote Post
ShadowD
post
Post #9





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


Proszę:

  1. <?php
  2. //znaki
  3.  $znaki=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','t','u','w','y','z',1,2,3,4,5,6,7,8,9,'-');
  4.  
  5.  for ($i = 0; $i < 33; $i++)
  6.    {
  7.    for ($j = 0; $j < 33; $j++)
  8.    {
  9.      for ($k = 0; $k < 33; $k++)
  10.      {
  11.        echo $znaki[$i].$znaki[$j].$znaki[$k];
  12.        
  13.        echo("<br />");
  14.      }
  15.    }
  16.  }
  17. ?>


Trochę upiększyłem dodatkowo teraz bez problemu możesz dodawać nowe znaki, jak coś jeszcze to pisz... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował ShadowD 1.12.2008, 20:14:31
Go to the top of the page
+Quote Post
viva
post
Post #10





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.12.2008

Ostrzeżenie: (0%)
-----


I już masz dużego plusa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ostatnia rzecz ... chciałbym wyeliminować znak "-" z początku i końca każdego słowa krótko mówiąc chciałbym aby był on tylko pośrodku liter/cyfr. Da rade to jakoś zrobić ? Jeśli nie to i tak nie szkodzi ;]
Go to the top of the page
+Quote Post
ShadowD
post
Post #11





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


Jak się chce to można wszystko... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Kod:
  1. <?php
  2. //znaki
  3. $znaki=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','t','u','w','y','z',1,2,3,4,5,6,7,8,9,'-');
  4.  
  5.  for ($i = 0; $i < 33; $i++)
  6.  {
  7.    if($znaki[$i]!=='-')  
  8.      for ($j = 0; $j < 33; $j++)
  9.      {
  10.        for ($k = 0; $k < 33; $k++)
  11.        {
  12.          if($znaki[$k]!=='-')
  13.            echo $znaki[$i].$znaki[$j].$znaki[$k].'<br />';
  14.        }
  15.      }
  16.  }
  17. ?>
Go to the top of the page
+Quote Post
viva
post
Post #12





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.12.2008

Ostrzeżenie: (0%)
-----


Jesteś wielki ! Człowieku serdeczne dzięki !
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 22:40