草庐IT

php - 如何通过更改通过引用传递的参数来对调用具有副作用的函数的方法进行单元测试?

我有一个调用内置PHP函数的方法,openssl_random_pseudo_bytes.publicfunctiongenerateRandomBytes(){$crypto_secure=TRUE;//$crypto_secureispassedbyreferenceandwillbesettoFALSEby//openssl_random_pseudo_bytesifitusesaninsecurealgorithm$random_bytes=openssl_random_pseudo_bytes(16,$crypto_secure);if(!$crypto_secure){th

php - 随机用户名生成器

我正在尝试创建一个随机用户名生成器。我看过几个随机字符串生成器,但没有一个看起来像实际的用户名。我想知道我将如何着手创建一个像本页特色的脚本:http://generator.my-addr.com/generate_usernames-free_username_generator_online_tool.php基本上是从字典中取出一个单词,加上一定数量的随机字符,然后加上一定数量的数字。我最大的问题是让它创建真实的用户名。 最佳答案 即使我不明白您为什么要生成用户名,但如果您唯一关心的是它们是否可以发音,我会调查Markovch

php - 一个或多个数组的加权洗牌?

使用嵌套数组中的权重对一个或多个数组进行混洗的好算法是什么?例子:$array=array(array("name"=>"John","rank"=>3),array("name"=>"Bob","rank"=>1),array("name"=>"Todd","rank"=>8),array("name"=>"Todd","rank"=>14),array("name"=>"Todd","rank"=>4));我希望数组随机打乱,但我希望rank值是一个权重。因此,排名较低的人更有可能排在榜首。我已经尝试了一些东西,比如遍历数组并提取使用mt_rand(mt_rand(0,$value

PHP - 伪随机数生成器?

在过去的几天里,我一直在努力寻找一种基于种子在PHP中生成随机数的好方法。我相信你们中的大多数人已经知道,phprand()方法在某些情况下过于随机,我真的需要一个PRNG,它可以让我根据种子一遍又一遍地生成相同的序列号。我已经尝试过使用XORShiftPRNG,问题在于不同的操作系统似乎会生成不同的答案,因为PHP如何处理位移位。我需要某种适用于PHP的算法,它能够生成相当大的数字,因为无论如何我都会在它前面放一个零并将它变成一个小的double。(0.兰德) 最佳答案 mt_srand(42);echomt_rand(1,100

php - 大随机数生成

我需要一个大型(比如128位大型)PHP随机数生成器。我在考虑将这个数字存储为十六进制的字符串。请注意,这是针对提到需要“随机”数字的登录系统,所以我猜我真的需要它“足够随机”(因为我知道伪随机永远不是真正随机的)。我考虑的算法是一次生成第一个十六进制数字,然后将它们连接起来。像这样:$random='';for($i=0;$i我能否相信此函数会返回良好的伪随机数,还是我搞砸了一些我不应该做的事情? 最佳答案 尝试:for($str='',$i=0;$i 关于php-大随机数生成,我们在

php - 从/dev/urandom 转换随机值

如commentsofmt_rand()中所述它的安全性很弱,我们应该改用/dev/urandom。我的问题是我从urandom得到了一个二进制字符串。如何将此二进制字符串转换为0-9a-zA-Z?看起来base_convert()在这里不起作用。 最佳答案 仅记录完整功能:functionrandomFromDev($len){$fp=@fopen('/dev/urandom','rb');$result='';if($fp!==FALSE){$result.=@fread($fp,$len);@fclose($fp);}else

javascript - PHP mt_rand 真的是随机的还是可能有偏见?

我在我的网站上用类似的东西做了两个基本的A-B-C测试if(mt_rand(0,2)==0){//THROWINREHERE}elseif(mt_rand(0,2)==1){//THROWINLRHERE}else{//THROWINLBHERE}我原以为这三种情况发生的频率相同(占所有网页浏览量的33.3%)。然而,印象(由GoogleAdsense衡量)显示出非常不同的分布。有趣的是,两个测试(下面的两个图表)都显示出相似的模式:LB出现最多,然后是RE,然后是LR。样本量有数千,因此随机发生这种情况的可能性实际上为零。我是不是误解了mr_rand()?有人知道它是否经过适当测试吗

php - 在金字塔结构中生成随机玩家优势 (PHP)

对于在线游戏(MMORPG),我想创建具有随机强度值的角色(玩家)。越是强的角色,越不应该有这种东西。例子:12,000名实力为1的玩家10,500名2名玩家8,500名3名玩家6,000名4名玩家3,000名5名玩家实际上,我需要从1.1到9.9的float、渐进强度值,但对于此示例,使用整数强度更容易解释。您知道我如何用PHP编写代码吗?当然,我需要mt_rand()来生成随机数。但是我怎样才能实现这种金字塔结构呢?它有什么功能?根函数、指数函数、幂函数还是对数函数?提前致谢!在图表中应该是这样的:Pyramidgraphhttp://img7.imageshack.us/img7

php - 如何从加权列表中挑选 4 个独特的项目?

所以我有一个加权项目列表,我想从这个列表中挑选4个不重复的项目。ItemWeightApple5Banana7Cherry12...Orange8Pineapple50最有效的方法是什么?我最初的尝试是,如果已经选择的项目出现,则只为后续选择重新选择……但对于一个小列表,这可能会导致大量重新选择。编辑澄清:对于上面的例子,忽略水果D到N,总重量为82。所以首先被采摘的机会是:~6%B~8.5%C~14.6%O~9.8%P~61%一旦选择了一个项目,概率就会(应该!)改变。 最佳答案 在您的评论中,您说unique意味着:Idon't

php - 我做了一个可怕的循环....请帮助修复我的逻辑

我知道我这样做的方式很糟糕...但我很难找到任何替代方案。我有一系列产品,需要随机选择4个。$rawUpsellList是基于购物车中商品的所有可能加售的数组。每个值都是一个产品对象。我知道这是非常丑陋的代码,但我现在看不到替代方案……有人请让我摆脱痛苦,这样这段代码就不会投入生产……$rawUpsellList=array();foreach($tru->global->cart->getItemList()as$item){$product=$item->getProduct();$rawUpsellList=array_merge($rawUpsellList,$product-