Jag använder denna koden för att generera slumpmässiga lösenord. Problemet är att när jag loopar c:a 3000 poster så lyckas den skapa flera identiska strängar.
Det verkar väl inte speciellt slumpmässigt med så många teckenalternativ och stränglängden som är 30 tecken?
Någon som har en bättre kod?
$tecken = 'ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz0123456789';
mt_srand((double)microtime()*1000000^getmypid());
while (strlen($kod)<30)
{
$kod.=substr($tecken,(mt_rand()%strlen($tecken)),1);
}
visst går det att kolla om det redan finns en sådan kodsträng, och generera en ny men visst är det konstigt. ? Om jag kör koden nedan så kan den skapa dubletter redan vid 400:e strängen... :q
Hur kan det bli så?? Det borde ju finnas så jäkla många alternativ så det skulle ta forever att lyckas generera två likadana koder även om $kod bara skulle vara 10 tecken.
Ja det är lite mystiskt, men jag är inte speciellt förvånad egentligen.
Jag har en simpel bannerrotator på min sida där jag provat slumpa med rand() och mt_rand() . Trots detta ser jag jätteklart i statistiken att det är väldigt ojämnt i resultaten. Vissa banners visas mycket mer än andra... x(
270 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e