我被要求在面试中提供这个滚动骰子问题的解决方案。当我向他展示我的解决方案时,他说还有另一种方法可以找到解决方案。我只在PHP脚本中寻找答案。
问题:
两个人正在玩一个滚动2个骰子的游戏。每个人掷n次骰子并记录所有n次尝试的结果(两个骰子的值之和)。因此,在玩家的两次尝试之后,我们有两个对应于两个玩家的n个结果的列表。
他们想知道他们是否有相同次数的所有可能结果(1到12)。如果他们得到所有可能的结果相同的次数,那么他们被称为幸运,否则不幸。
输入:两个整数数组(L1,L2)对应两个玩家的结果。
输出:幸运或不幸,视情况而定
我的回答:
<?php
function rollingdice($input1,$input2)
{
foreach($input1 as $k=>$a)
{
if(in_array($a,$input2))
{$p = array_search($a, $input2);
unset($input2[$p]);
}
else
{ return 'Unlucky';}
}
return 'Lucky';
}
?>
答案 0 :(得分:1)
<?php
function rollingdice($input1,$input2)
{
$a = array_count_values($input1);
$b = array_count_values($input2);
if(array_diff_assoc($a,$b) || array_diff_assoc($b,$a)) { return 'Unlucky';}
return 'Lucky';
}