PHP洗牌、猴子选大王两个小算法
《一》洗牌算法
/**
*洗牌算法washCard
*@param $cardNum
*@return array
*/
function washCard($cardNum)
{
$cards = range(1, $cardNum);
for ($i = $cardNum - 1; $i > 0; $i--) {
$rnd = rand(0, $i - 1);
list($cards[$rnd], $cards[$i]) = array($cards[$i], $cards[$rnd]);
}
return $cards;
}
print_r(washCard(54));
《二》猴子选大王
/**
*思路:循环数组判断取出的每一个值是否是m的倍数,如果是剔除掉。如果不是push到数组队尾。算法复杂度:O(n)
*@param $n
*@param $m
*/
function monkeySelectKing($n, $m)
{
$monkey = range(1, $n)
$i = 0;
while(count($monkey) > 1) {
$i += 1;
$head = array_shift($monkey);//踢出
if ($i % $m != 0) {
//当前取到的这个如果不是m的倍数,就把这个值放回去
array_push($monkey, $head);
}
}
return $mokey[0];
}
$n = 11;
$m = 3;
print_(monkeySelectKing($n, $m));
————————————————————————————————————————————
以上结果请小伙伴自行打印查看结果,有更好的算法欢迎留言讨论,不喜勿喷哦!!!!
————————————————————————————————————————————
PHP洗牌、猴子选大王两个小算法的更多相关文章
- POJ3750: 小孩报数问题+一道经典约瑟夫问题(猴子选大王)
		
又一次因为一个小错误,POJ上Wrong Answer了无数次..... 在差不多要放弃的时候,发现了这个猥琐的不能再猥琐的bug,改完了提交就AC了,简直无语.... 本题wo采用模拟方法: 1 # ...
 - C语言程序设计-猴子选大王[链表应用]
		
2032 猴子选大王 Description 有N只猴子,从1~N进行编号.它们按照编号的顺时针方向排成一个圆圈,然后从第一只猴子开始报数.第一只猴子报的第一个数字为1,以后每只猴子报的数字都是它们前 ...
 - SYCOJ27猴子选大王
		
题目-猴子选大王 (shiyancang.cn) 一.出队顺序Description有M个人,其编号分别为1-M.这M个人按顺序排成一个圈.现在给定一个数N,从第一个人开始依次报数,数到N的人出列,然 ...
 - sicily  猴子选大王
		
题目描述 猴子选大王,有N只猴子,从1-N进行编号.它们按照编号的顺时针方向,排成一个圆圈,然后从第一只猴子开始报数.第一只猴子报1,以后每只猴子报的数字都是它前面猴子所报数字加1.如果一只猴子报的数 ...
 - PHP编程----猴子选大王
		
<?php/** * 猴子选大王 * 17个猴子围成一圈,从某个开始报数1-2-3-1-2-3---报"3"的猴子就被淘汰, * 游戏一直进行到圈内只剩一只猴子它就是猴大王了 ...
 - 猴子选大王 (约瑟夫环)(c#)
		
猴子选大王问题: 一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1到m的顺序围坐一圈, 从第1开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子, ...
 - 猴子选大王的c#实现
		
原文地址:猴子选大王的c#实现作者:余文 今天被问到了猴子选大王的意思,题目大意就是说有n只猴子围坐成一个圈,按顺时针方向从1到n编号.然后从1号猴子开始沿顺时针方向从1开始报数,报到m的猴子出局,再 ...
 - 猴子选大王【PHP】
		
目录 猴子选大王 指针解决 数组压栈 猴子选大王 一群猴子排成一圈,按1,2,...,n依次编号.然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不 ...
 - 约瑟夫环问题(猴子选大王)PHP版
		
约瑟夫斯问题问题有时候也被描述成猴子选大王问题,题目如下.(最后会贴上约瑟夫问题的来历) 一群猴子排成一圈,按1,2,…,n依次编号. 然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再 ...
 
随机推荐
- Scala的泛型
			
类比java中的泛型: 上界(协变).下界(逆变) scala中泛型采用中括号声明 val array = Array[Int](,,,) array() //声明什么类型就返回什么类型 //test ...
 - ExpandableListView
			
ExpandableListView 1.界面 Item_Group_layout 就一个TextView <?xml version="1.0" encoding=&quo ...
 - BZOJ.4009.[HNOI2015]接水果(整体二分 扫描线)
			
LOJ BZOJ 洛谷 又是一个三OJ rank1!=w= \(Description\) (还是感觉,为啥非要出那种题目背景啊=-=直接说不好么) 给定一棵树和一个路径集合(每条路径有一个权值).\ ...
 - __x__(7)0905第二天__HTML的发展
			
HTML的发展 浏览器各个厂商有不同的标准,一个网页的兼容性非常差. 于是,W3C出来了,作为公益组织定义了HTML标准. 在 1993.6 实现并发布了第一个 HTML. 在 1995.11 开始创 ...
 - 07_ for 练习 _ sumOfOdd
			
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
 - [LeetCode] Ambiguous Coordinates 模糊的坐标
			
We had some 2-dimensional coordinates, like "(1, 3)" or "(2, 0.5)". Then, we re ...
 - elasticsearch视频34季
			
02_结构化搜索_在案例中实战使用term filter来搜索数据 课程大纲 1.根据用户ID.是否隐藏.帖子ID.发帖日期来搜索帖子 (1)插入一些测试帖子数据 POST /forum/articl ...
 - Python基础之列表深浅复制和列表推导式
			
一.列表深浅复制: 浅拷贝内存图如下: 深拷贝内存图如下: 二.列表推导式: 实例: """ 列表推导式 练习:exercise01 """ ...
 - 第一次c++作业小结
			
之前从未接触过c++,上完第一节课后也还是懵懵懂懂.当知道有作业要完成时,也是无从下手.在仔细阅读教材以及同学的帮助下,我了解了如何编写最简单的程序,也算是踏入c++的大门.希望自己的第一次作业能够符 ...
 - Jumpserver之设置开机自启动
			
vi /usr/lib/systemd/system/jms.service [Unit] Description=jms After=network.target mariadb.service r ...