php - 再次使用乐透程序

标签 php variables for-loop

我之前遇到过一个小彩票程序的问题,该程序计算 6/49 的所有可能组合(用 PHP)。

这是我目前的问题。我使用条件使数字不会重复,但在下一个循环中,当第一个数字更改时,我有一个重复组合。让我通过一个例子来解释:

我有这个组合:

1 2 3 4
1 2 3 5 
1 2 3 6
...
1 2 4 3
1 2 4 5
1 2 4 6

所以我的彩票 1 2 3 41 2 4 3 是一样的。

有什么解决办法吗?我想不出什么...

这是代码(我只做到了 4/49 :D )

<?php

for ($i=1 ; $i<50 ; $i++)

{

    $a=$i;
    for ($j=1 ; $j<50 ; $j++)

    {

        if ($i!=$j)
        {
            $b=$j;



                for ($k=1 ; $k<50 ; $k++)

                {

                if ($k!=$j && $k!=$i)
                {
                    $c=$k;

                    for ($l=1 ; $l<50 ; $l++)

                    {

                        if ($l!=$i && $l!=$j && $l!=$k)
                        {
                            $d=$l;
                            echo "$a $b $c $d <br>";
                        }
                    }
                }
            }
        }
    }
 }

 ?>
 <br/><br/>

谢谢!

更新:

代码如下所示:

< ?php

  for($a=1; $a<50; $a++)

  {

     for($b=$a+1; $b<50; $b++)

  {

    for($c=$b+1; $c<50; $c++)

    {

        for($d=$c+1; $d<50; $d++)

        {

            for($e=$d+1; $e<50; $e++)

            {

                for($f=$e+1; $f<50; $f++)

                {

                   $t=$t+1;
                }
            }

        }
    }
  }
 }
 echo "$t";

 ?>

我确实得到了正确的答案,但我也得到了这个错误:“ undefined variable :t” 知道为什么吗?

最佳答案

要得到所有的组合,你应该将内层循环变量值初始化为父循环变量值+1 4/49 的示例

for($a=1; $a<50-3; $a++)
    for($b=$a+1; $b<50-2; $b++)
        for($c=$b+1; $c<50-1; $c++)
            for($d=$c+1; $d<50; $d++)
                echo "$a $b $c $d<br>";

作为奖励,您不再需要测试值是否完全不同

关于php - 再次使用乐透程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12884994/

相关文章:

c# - 什么是 C# 静态字段命名约定?

从 stdin 计算简单赋值运算符 "="

python - 如何不通过大写其他代码来替换代码?

Javascript 从关联数组中查找最小数字(冒泡排序方法)

php - Laravel Artisan - 重新加载 .env 变量或重启框架

Java时间戳转php时间戳

php - 复选框导调用子邮件提交转到 404

c++ - 从动态 dll 访问静态链接库中的静态变量/函数

php - PHP代码在哪里解释?

javascript - 将 base64 转换后的文件存储在变量中供以后使用