博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

2012年11月2日

摘要: 生成不重复随机字符串生成1000000个用时不到1秒。如果要生成6位随机的不重复字符串,一般的想法是,使用Random生一个字符串,记录到数组中,再生成一个如果不在数组中则插入。直到生够数量。但这样效率会很低。对于6位随机字符,数字+字母=36个字符。6位转化为数字最大数为 36的6次方 = 2176782336。只要生成小于最大数的随机数,再转化为字符串即可。我的做法是,用最大数除以要生成的个数。得到一个递增值X。第一个随机数在0-X之间。第二个在X-X*2之间。之后以此类推,这样将避免了可能生成的随机数重复。然后再将随机数转化为指定长度的字符串。但这样生成的字符串数组会是顺序的。所以再打乱 阅读全文

posted @ 2012-11-02 21:00 PHP-张工 阅读(15614) 评论(1) 推荐(1) 编辑