我有 13 场足球比赛,可能的结果是主场获胜、平局、客场获胜。一个投注者必须预测全部 13 场比赛。我一直在尝试生成一个可以计算所有可能的投注组合的脚本,从数学上讲,可能的匹配数是 3^13。
到目前为止我所拥有的都是 PHP 中的;
$count = 1;
$total_rows = 13;
$total_level = 13;
$total_cols = 3;
$total_global = 3;
$active_rows = 0;
$active_cols = 0;
$active_levels = 0;
$active_global = 0;
$betArray = array();
$aciveChoice[$total_rows] = 0;
$globalChoice[$total_level] = 0;
while($active_rows < $total_rows){
while($active_cols < $total_cols){
while($active_global < $total_global){
while($active_levels < $total_level){
echo $active_rows.' - '.$active_levels.': Select:'.$active_cols.' - '.$active_global.'<br/>';
$active_levels++;
}
echo $count++.'<br /><br /><br />';
$active_levels = 0;
$active_global++;
}
$active_global = 0;
$active_cols++;
}
$active_cols = 0;
$active_rows++;
}
}
我的脚本没有给出所有可能的组合。任何有关如何解决此问题的想法将不胜感激。
最佳答案
$matches = 13;
$outcomes = 3;
$possibilities = $outcomes ** $matches;
for ($count = 0; $count < $possibilities; $count++) {
echo str_pad(base_convert($count, 10, 3), $matches, '0', STR_PAD_LEFT)."\n";
}
这将打印许多 13 个字符的字符串,每个字符有三种不同的可能性。 (由您决定如何分配含义;我可能会使用 1
表示 Team1 获胜,2
表示 Team2 获胜,0
用于抽奖。)
如果数字太大,这将会失败,因为 base_convert
显然是通过 float
工作的。有ways around it ,但是如果您正在探索多种可能性,您可能会遇到其他问题:P
关于java - 排列生成器 php/javaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52094310/