面试题 php随机获取概率结果

题目:随机输出“苹果”,“橘子”,“香蕉”要求输出“苹果”的概率为50%,“橘子”的概率为30%,“香蕉”的概率为20%

分析

方案一:

最常用rand(1,10)来处理 如果是5以下的输出苹果 6到8的输出橘子 9到10的输出香蕉

<?php
$arr = array(‘苹果‘,‘橘子‘,‘香蕉‘);
$i = mt_rand(1,10);
if($i<=5){
echo $arr[0];
}else if($i>=9){
echo $arr[1];
}else{
echo $arr[2];
}

然而这样是很不科学的 因为rand实在是太不靠谱了

方案二:

array_rand来处理

<?php
$arr = array(‘苹果‘,‘苹果‘,‘苹果‘,‘苹果‘,‘苹果‘,‘橘子‘,‘橘子‘,‘橘子‘,‘香蕉‘,‘香蕉‘);
$key=array_rand($arr);
echo $arr[$key];
?>

这真的靠谱吗?不敢恭维

方案三:

str_shuffle来处理

<?php
$array=array(‘1‘=>‘苹果‘,‘2‘=>‘橘子‘,‘3‘=>‘香蕉‘);
$string="1111122233";
$key=str_shuffle($string);
echo $array[$key{0}];
?>

貌似我觉得这个最靠谱

时间: 2024-07-30 13:05:05

面试题 php随机获取概率结果的相关文章

【算法导论学习-012】n个数随机等概率的抽样m个

算法法导论>P129页课后题5.3-7 suppose we want to create a random sample of the set {1,2,3,-,n}, thatis, an m-element subset S, where0≤m≤n, such that each m-subset is equally likely to be created. One waywould be to set A[i]=i for i=1,2,3,-,n, call RANDOMIZE-IN

随机获取oracle数据库中的任意一行数据(rownum)

最近看oracle资料的时候,了解rownum的概念,以前只知道对数据库表进行简单的增删改查: 看到了rownum的概念后,突然想到了好多业务场景应该都可以适用的,比如在进行随机发奖的时候, 我们就可以从先查一下奖品表中可以发的总奖品数,然后通过java的Random类在总奖品数内生成一个随机整数X,然后调用 select * from (select rownum no,id from Table where rownum<=X ) where no >=X 获取出该条奖品,这样获取出来的值

MySQL随机获取数据的方法,支持大数据量

最近做项目,需要做一个从mysql数据库中随机取几条数据出来. 总所周知,order by rand 会死人的..因为本人对大数据量方面的只是了解的很少,无解,去找百度老师..搜索结果千篇一律.特发到这里来,供大家学习. 在mysql中带了随机取数据的函数,在mysql中我们会有rand()函数,很多朋友都会直接使用,如果几百条数据肯定没事,如果几万或百万时你会发现,直接使用是错误的.下面我来介绍随机取数据一些优化方法. SELECT * FROM table_name ORDER BY ran

Java基础知识强化之IO流笔记47:IO流练习之 随机获取文本文件中的姓名案例

1.  随机获取文本文件中的姓名案例     需求:我有一个文本文件中存储了几个名称,请大家写一个程序实现随机获取一个人的名字.     分析:           A:  把文本文件中的数据存储到集合中           B:  随机产生一个索引           C:  根据该索引获取一个值 2. 代码实现: 1 package cn.itcast_02; 2 3 import java.io.BufferedReader; 4 import java.io.FileReader; 5

Oracle随机获取记录

1 SELECT A.* FROM TableA A CROSS JOIN (SELECT TRUNC(DBMS_RANDOM.VALUE(0, 999999999999999999999)) RANDOMNUM FROM DUAL) B ORDER BY B.RANDOMNUM Oracle随机获取记录,布布扣,bubuko.com

随机获取部分List&lt;Object&gt;集合

随机返回list对象 /** * 返回随机List * @param list 备选 * @param selected 备选数量 * @return */ public List getRandomNum(List list, int selected) { List<Object> reList = new ArrayList<Object>(); Random random = new Random(); // 先抽取,备选数量的个数 if (list.size() >

PHP如何随机获取一个二维数组中的一个值

获取一个数组: $awardid_list=pdo_fetchall('select id from '.tablename($this->table_award)); 这是微擎的写法哈,意思就是查询一组字段为id的数据: 二维数组如图: 那么值是1.2.3,我们如何随机获取呢,请往下看代码: $no=array_rand($awardid_list); print_r($awardid_list[$no]['id']); 这样就OK了哈,就可以随机获取值1.2.3了哦.

[源码]随机获取虾米音乐song_id API文件

[源码]随机获取虾米音乐song_id API文件 January 11, 2015 注意:此API请放置于国内主机使用,如香港.北京等等,否则会提示:虾米音乐在您所处的国家或地区暂时无法使用 <?php $url = file_get_contents('http://www.xiami.com/search/song/page/'.rand(1,636).'?key=%E5%8A%A8%E6%BC%AB&is_pub=y'); preg_match_all("/\?sid=(\

在ASP.NET MVC应用程序中随机获取一个字符串

在开发ASP.NET MVC应用程序时,有可能需要一个随机字符串,作为密码或是验证码等. 如果你需要的是SQL版本,可以参考<密码需要带特殊字符(二)>http://www.cnblogs.com/insus/archive/2012/02/16/2354453.html 此篇实现方法多少是参照这个实现C#版本. 在应用程序下,创建一个CharacterUtility.cs: 这个类别中,分别有几个静态方法:一,为随机的小写字母: 二,是随机产生大写字母: 三,是随机产生数字: 四,是产生特殊