随机数,满足范围和,才返回,递归造成了栈溢出,请大神给出解决方案
function get_rand_array(){
for($h=0;$h<=$_POST['peoplenum'];$h++){
$total[$h]=$this->moneyrand($_POST['endnum']);
if($total[$h]['total']>$_POST['startnum'] && $total[$h]['total']<$_POST['endnum']){
$user->query("SET NAMES utf8");
$data=$user->query("SELECT * FROM `m_user` WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `m_user`)))
ORDER BY id LIMIT ".$_POST['peoplenum']."; ",'select');//随机抽取
}else{
$total[$h]=call_user_func_array(array('Index','rechangeadd'),array($_POST['startnum'],$_POST['endnum']));
if(!is_callable($total[$h])){
$total[$h]=$this->rechangeadd($_POST['startnum'],$_POST['endnum']);
}
}
return $total;
}
function moneyrand($endnum){
$money=array('10','50','100');
$money_rand=mt_rand(0,2);
$total['max_10']=$max_10=$endnum/10;
$total['max_10']=$max_10=$endnum/10;
$total['max_50']=$max_50=$endnum/50;
$total['max_100']=$max_100=$endnum/100;
$rand_10=mt_rand(0,50);
$rand_50=mt_rand(0,$max_50);
$rand_100=mt_rand(0,$max_100);
//随机10元充值
$total['rand_10']=$rand_10;
$total['rand_50']=$rand_50;
$total['rand_100']=$rand_100;
$total['total']=$money[0]*$rand_10+$money[1]*$rand_50+$money[2]*$rand_100;
return $total;
}
这个随机数,范围做了限制以后,还是会报出Fatal error: Maximum function nesting level of '100' reached, aborting!的错误
这个错误是递归造成了栈溢出,请大神给出解决方案
...全文
相关推荐
Python编程实现生成特定范围内不重复多个随机数的2种方法
主要介绍了Python编程实现生成特定范围内不重复多个随机数的2种方法,涉及Python基于random生成随机数的常见操作技巧,需要的朋友可以参考下
递归和非递归方式计算Ackerman函数
递归和非递归方式计算Ackerman函数。非递归方法用堆栈实现。代码内部有详细的注释说明,比较适于学习。
VB 递归的“栈溢出”
VB 递归的“栈溢出” VB 递归的“栈溢出” VB 递归的“栈溢出”
递归法求N的阶乘
此程序是用来递归法写的, 可以实现求n的阶乘。
C语言扫雷游戏实战:从零实现控制台版,掌握数组、递归与模块化设计
在编程学习中,项目实践是巩固基础、提升逻辑思维的关键路径。通过实现经典游戏,开发者能直观理解程序如何将抽象逻辑转化为可运行的代码。扫雷游戏作为经典案例,其核心原理涉及二维数组的数据组织、递归算法(如Flood Fill)的区域展开机制,以及模块化函数设计。这些技术不仅训练了程序员的逻辑分解能力,也为后续学习更复杂的数据结构和算法打下基础。在工程实践中,此类项目常用于串联C语言的核心语法点,如循环、条件判断和随机数生成,并能通过控制台交互增强调试与问题排查能力。本文以C语言实现控制台扫雷为例,详细拆解了游戏状


基础编程
