面试题 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}];
?>
貌似我觉得这个最靠谱
面试题 php随机获取概率结果的更多相关文章
- MySQL随机获取数据的方法,支持大数据量
最近做项目,需要做一个从mysql数据库中随机取几条数据出来. 总所周知,order by rand 会死人的..因为本人对大数据量方面的只是了解的很少,无解,去找百度老师..搜索结果千篇一律.特发到 ...
- PHP如何随机获取一个二维数组中的一个值
获取一个数组: $awardid_list=pdo_fetchall('select id from '.tablename($this->table_award)); 这是微擎的写法哈,意思就 ...
- [源码]随机获取虾米音乐song_id API文件
[源码]随机获取虾米音乐song_id API文件 January 11, 2015 注意:此API请放置于国内主机使用,如香港.北京等等,否则会提示:虾米音乐在您所处的国家或地区暂时无法使用 < ...
- Java基础知识强化之IO流笔记47:IO流练习之 随机获取文本文件中的姓名案例
1. 随机获取文本文件中的姓名案例 需求:我有一个文本文件中存储了几个名称,请大家写一个程序实现随机获取一个人的名字. 分析: A: 把文本文件中的数据存储到集 ...
- 10,随机等概率的输出m个不重复的数
今天看到一段代码,可以从0.....n-1中随机等概率的输出m个不重复的数(n远远大于m).遂记录下来. 首先,产生随机数,不免要用到srand,rand函数.先简单介绍下两个函数. 1,void s ...
- PHP如何实现在数据库随机获取几条记录
本文实例讲述了PHP实现在数据库百万条数据中随机获取20条记录的方法.PHP实例分享给大家供大家参考,具体如下: 为什么要写这个? 在去某个公司面试时,让写个算法出来,当时就蒙了,我开发过程中用到算法 ...
- 我现在有个表,里面有100个不同的单词,每个单词对应有大概20个词组,我想通过sql,每个单词随机获取对应的3个词组,请问怎么写可以实现?
闲来无事刷技术论坛,看到一个这样的问题: 我现在有个表,里面有100个不同的单词,每个单词对应有大概20个词组,我想通过sql,每个单词随机获取对应的3个词组,请问怎么写可以实现? 感觉题材很新颖,角 ...
- 随机获取min和max之间的一个整数
// 随机获取min和max之间的一个整数 const randomNum = (Min, Max) => { let Range = Max - Min; let Rand = Math.ra ...
- js在数组arr中随机获取count数量的元素
// 在数组arr中随机获取count数量的元素; const getRandomArrayElements = (arr, num) => { // 新建一个数组,将传入的数组复制过来,用于运 ...
随机推荐
- 网上流行的add(2)(3)(4)
网上有很多其他的各样的算法.其实这题就可以用javascript属性arguments.callee来实现,代码如下: function add(x){ var result=0; return fu ...
- 转载C#泛型集合—Dictionary<K,V>使用技巧
1.要使用Dictionary集合,需要导入C#泛型命名空间 System.Collections.Generic(程序集:mscorlib) 2.描述 1).从一组键(Key)到一组值(Value) ...
- winform C#屏幕右下角弹出消息框并自动消失
①弹出信息框后慢慢下降消失 在主窗体中新增按钮重命名为btnShowAndDisappearMessages,在click事件中写如下代码: private void btnShowAndDisapp ...
- gulp 之一 安装及简单CSS,JS文件合并压缩
最近研究了一下gulp构建工具,发现使用起来比grunt顺手一些.(个人感受),以下是grunt和gulp构建方式和原理: grunt 基于文件方式构建,会把文件先写到临时目录下,然后进行读文件,修改 ...
- Cannot open your terminal '/dev/pts/4' - please check.
使用screen命令的时候出现了下面的错误 Cannot open your terminal '/dev/pts/4' - please check. 可以使用script命令来记录这个终端会话, ...
- 2016022612 - redis事务命令集合
参考地址:http://www.yiibai.com/redis/redis_transactions.html Redis事务由指令 MULTI 启动,以EXEC结束. 1.multi 用途:事务开 ...
- JavaScriptCore-b
JavaScriptCore提供了JavaScript和Objective-C桥接的Obj-C API.JavaScriptCore提供了让我们脱离UIWebView执行JavaScript脚本的能力 ...
- iOS:图像和点击事件
问题:如何区分点的是哪张图片? // // main.m // Hello // // Created by lishujun on 14-8-28. // Copyright (c) 2014年 l ...
- attr
今天用attr的时候忽然不知道html中没有的attribute可以不可以用该方法新增了, 查了appframework的文档,居然木有看出解答. 百度之,js原生的setAttribute当然是可以 ...
- 吉哥系列故事——完美队形II
hdu4513:http://acm.hdu.edu.cn/showproblem.php?pid=4513 题意:给以一个序列,然后让你求一个最长回文序列的长度,这个序列的从左到最中间那个数是不降的 ...