php - 如何从 10 个可能的点生成三角形的所有可能性

标签 php algorithm

<分区>

我正在想办法解决这个问题:

生成 10 个点之间三角形的所有可能性,这些点的位置如下:

.   .   .

.   .   . 

.   .   .

    .

(类似普通手机的键盘)
第一行:1 2 3
第二行:4 5 6
第三行:7 8 9
第四行:0

我正在使用 PHP。我尝试使用相反的逻辑生成。 (获取所有组合并删除所有不是三角形的组合,但这太复杂了)。有人有什么建议吗?

最佳答案

我想到了以下几点:

$banned = array(5,8,10);
$array = array();
for($i=1;$i<11;$i++){
    for($j=1;$j<11;$j++){
        for($k=1;$k<11;$k++){
            if($i != $j && $j != $k && $i != $k){
                $tmp = array($i, $j, $k);
                sort($tmp);
                if($tmp[1]-$tmp[0] !== $tmp[2]-$tmp[1] AND $tmp !== $banned){
                    $array[] = $tmp;
                }
            }
        }
    }
}
$array = array_map("unserialize", array_unique(array_map("serialize", $array)));// remove duplicates
print_r($array); // printing

关于php - 如何从 10 个可能的点生成三角形的所有可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16994281/

相关文章:

php - 试图调用名为 "getpreReady"的未定义方法 (Twig & Symfony3)

php - 如何在 CodeIgniter 中执行 SQL 查询

php - 如何获取多个选择列表的值和 id 并将其传递给 AJAX?

javascript - 从数组数组中删除重复条目(javascript)

c - 带标准输入的 N 叉树函数(makenode、insert)

php - 使用数据库级 MD5 函数是否比应用程序级函数具有更大的安全风险?

php - is_int() 无法在 PHP 中检查 $_GET?

java - 只需用空格和一次一个字符更改字符位置,即可逐字符交换 2 个子字符串

c - C 中的快速排序,带有霍尔分区

c - C语言求最短路径的方法