PHP是这样实现随机数生成的吗?假设我想计算是或否。每次我都有一定的概率百分比(比如:本例中为0.05%)。我愿意:$possibilities=100/$probabilityPercentage;//$possibilities=2000$yes=rand(1,$possibilities);$yesCheck=$possiblities;//OPTION1$yesCheck=rand(1,$possibilities);//OPTION2($yesCheck==$yes)?returntrue:returnfalse;两种选择的结果是否相同? 最佳答案
我正在从以下字符生成一个6位代码。这些将用于在贴纸上盖章。它们将以10k或更少的批处理生成(打印前),我预计总数不会超过1-2百万(可能更少)。生成批代码后,我将检查现有代码的MySQL数据库,以确保没有重复代码。//excludeproblemchars:B8G6I1l0OQDS5Z2$characters='ACEFHJKMNPRTUVWXY4937';$string='';for($i=0;$i这是生成代码的可靠方法吗?会有多少种可能的排列?(来自21个字符的池中的6位代码)。抱歉数学不是我的强项 最佳答案 21^6=8576
我在PHP中使用opennssl_random_pseudo_bytes(),它的执行速度非常慢。我的应用程序经常超时(抛出执行时间限制错误)。OpenSSLrandom这么慢有什么特别的原因吗?我目前在我的开发人员机器上使用Windows7x86。 最佳答案 在Windows上,openssl_random_pseudo_bytes()调用OpenSSL的RAND_screen()来生成熵。它非常慢,而且PHP几乎不是第一个遇到这种情况的unix->windows端口。看起来常见的建议是改用RAND_seed()。另外值得注意的是
我有以下代码从PHP中的数组$array中选取$n元素:shuffle($array);$result=array_splice($array,0,$n);给定一个大数组但只有几个元素(例如10000中的5),这是相对较慢的,所以我想优化它,这样就不会所有元素都必须重新洗牌。这些值必须是唯一的。我正在寻找性能最好的替代方案。我们可以假设$array没有重复项并且是0索引的。 最佳答案 $randomArray=[];while(count($randomArray)这将提供恰好5个元素,没有重复,而且速度非常快。key将被保留。注意
我正在用php5.4开发一个站点,我想知道使用哪个来生成随机盐以确保密码安全性更好?$salt=sha1(openssl_random_pseudo_bytes(23));或$seed='';$a=@fopen('/dev/urandom','rb');$seed.=@fread($a,23);$salt=sha1(seed);或者我应该选择:$salt=openssl_random_pseudo_bytes(40);或$salt='';$a=@fopen('/dev/urandom','rb');$salt.=@fread($a,23); 最佳答案
我需要在PHP中生成两个不相等的数字。我知道我使用$random1=(rand()%9);生成0-9之间的随机数。我想我需要对此添加一些内容。谢谢! 最佳答案 $r=str_shuffle("0123456789");$r1=(int)$r[0];$r2=(int)$r[1]; 关于php-生成两个在PHP中不相等的数字,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/155035
我想知道如何从一个组中获得随机数量的成员,但我不知道最好的方法是什么,而且我认为ORDERBYRAND()不是最好的或者,由于一个组可以有超过100,000个成员,执行这种类型的查询可能会非常慢。我发现这种使用SQL的方法,但我不知道如何在DQL中做同样的事情:HowcanioptimizeMySQL'sORDERBYRAND()function? 最佳答案 为了不降低性能,我通常会这样做://RetrievetheEntityManagerfirst$em=$this->getEntityManager();//Getthenum
使用srand(time())生成密码重置token(或CSRFtoken)是不好的,因为token是可预测的。我读了这些:Isusingmicrotime()togeneratepassword-resettokensbadpracticeRESTWebServiceauthenticationtokenimplementation但我不明白token如何可以预测。我知道如果在一秒钟内多次重设密码,我会得到相同的token。我有以下代码:如果我在一秒钟内多次重设密码,我知道我得到了相同的token,但攻击者如何利用它? 最佳答案
我知道这个问题可能已被问到,但我对之前的问题的理解程度不足以知道它们是否符合我的要求。$fruits=array('20'=>'apple','40'=>'orange','40'=>'pear');关键是值(value)被挑选的机会的百分比。我想mt_rand()一个介于0和99之间的数字,并根据这些百分比从$fruits返回一个值。很可能我很困惑,因为我不知道如何解释我在寻找什么。预先感谢您的帮助。编辑:根据这些机会从$fruits中获取一个随机值:我希望有40%的几率得到一个橙子,有40%的几率得到一个梨,还有80%的几率得到一个苹果。编辑:为了进一步澄清,因为很多答案都错了,(
random.randomrandom.random()用于生成一个0到1的随机符点数:0random.uniformrandom.uniform(a,b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a>b,则生成的随机数n:a代码如下:print(random.uniform(10,20))print(random.uniform(20,10))#18.7356606526#12.5798298022random.randintrandom.randint(a,b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n:a代码如下:p