ホームページ  >  記事  >  バックエンド開発  >  100 万個の小文字の英語数値混合文字列を生成します。重複がないことは何桁まで保証できますか?

100 万個の小文字の英語数値混合文字列を生成します。重複がないことは何桁まで保証できますか?

WBOY
WBOYオリジナル
2016-06-23 13:57:411310ブラウズ

1,000,000 個の英語の数字が混在する文字列を生成します。最大の重複を避けるためには何桁書く必要がありますか? 教えてください


ディスカッションへの返信 (解決策)

数字 10 個、大文字 26 個、小文字 26 個, の合計 62 の状態を 62 進数とみなすことができます

pow(62, 4) = 14776336
つまり、連続インクリメントの場合、14776336 以降に重複が発生します
ニーズを十分に満たしています

あ、気付かなかった 小文字しか使えない

それは

pow(36, 4) = 1679616
まだ十分です

ああ、小文字しか使えないことに気づきませんでした

それは

pow (36, 4) = 1679616
まだ満足です

このように書けば9桁のランダムな100万の文字列を生成するのは問題ないはずです

うわー

この100万の文字列を何度か生成したいのですが、この種のロジックでは重複が生成されます

理解できません、

/*     * 随机字符串   */   function random_str($length)   {  		$arr = array_merge(range('a', 'z'),range(0, 9));		$str = '';		$arr_len = count($arr);		for ($i = 0; $i < $length; $i++)		{			$rand = mt_rand(0, $arr_len-1);			$str.=$arr[$rand];		}		    return $str;   } 
が 100 万を生成することを確認する必要があります。一度に、重複はありません

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。