欢迎光临朱凯的个人博客!
朱凯,a3.work

趣味题:屠龙刀升级

 发布时间: 2019-01-28 10:00      原创:  朱凯      评论: .       .人查看

题目: 一把1级屠龙刀, 最高可以升到9级, 每次升级成功率30%, 失败率70%。失败会退一级, 最差退到1级。 那么在1000次内升级到9级的概率为多少?

尝试用php模拟了一下, 由于没设定失败下限,结果很恐怖。

第994次升级结果:屠龙刀等级为:-358。第995次升级结果:屠龙刀等级为:-359。第996次升级结果:屠龙刀等级为:-358。 第997次升级结果:屠龙刀等级为:-359。第998次升级结果:屠龙刀等级为:-360。第999次升级结果:屠龙刀等级为:-361。

循环100次,最好的结果:

第342次升级结果:屠龙刀等级为:7。第343次升级结果:屠龙刀等级为:8。第344次升级结果:屠龙刀等级为:9! 坑不坑...

<?php
$Updateresultabby = array( 
	array('return' => -1,'range' => '70'),
	array('return' => 1,'range' => '30'));
$level =1 ;
$level_max =2;
for( $i = 0; $i < 2000; $i++ ){
	$KeyNum = mt_rand( 0, 99 );
	$NumRange = 0;
	$KeyGet = 0;
	foreach($Updateresultabby as $tmp){
		$result = intval($tmp['range']);
		if(($KeyNum>=$NumRange) && ($KeyNum<($NumRange+$result))){
			$KeyGet = $tmp['return'];
			break;
		}else{
			$NumRange += $result;
		}
	}
	if($level==9){echo "坑爹九级神器!";break;}
	$level +=$KeyGet;
	if($level>$level_max){$level_max = $level;}
	if($level==0){$level=1;}
	printf("第%s次升级结果:", $i);
	printf("屠龙刀等级为:%s!最高等级为%s", $level,$level_max);
	echo "\r\n";
/*
	printf("第%s次计算结果:", $i);
	print_r ($KeyGet);
	echo "\n";
*/
}
?>

转载请注明来源:   趣味题:屠龙刀升级  - 朱凯博客

分享是一种快乐,也是一种美德:
¥打开支付宝,扫码领红包¥ 红包

支付宝 aliPay

微信 wxPay