gpt4 book ai didi

php - 如何用 PHP 创建一个 "Math Square"拼图?

转载 作者:行者123 更新时间:2023-12-04 05:33:59 24 4
gpt4 key购买 nike

很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。如需帮助澄清此问题以便可以重新打开,visit the help center .




8年前关闭。




数学广场:
喜欢这个:http://www.ps-heine.de/archives/416

  • 数学方阵必须从左到右、从上到下求解。
  • 操作顺序规则不适用。
  • 每个号码只能按时使用。

  • 我从小学开始就喜欢这些,但不幸的是我找不到任何书。对此我感到失望,我想我可以尝试自己做一些。

    我还处于概念阶段,
    但让我解释一下我到目前为止所采取的步骤:

    首先我创建一个数组 $matrix .
  • 它包含矩阵的每一行的数组。
  • 每个行数组保存实际行的列/单元格。
  • 每个单元格都是一个带有参数“id”、“type”和“value”的数组。

  • 在此处查看数组示例:
    http://pastebin.com/RdBmxvjq

    在此示例中,您已经可以看到运算符。

    我有一个函数 operator(),它随机返回运算符“+”、“-”、“*”、“/”之一。

    自然地,首先包括运算符,然后与它们一起找到适合矩阵的数字要比反之容易得多。

    这时候我可能已经完成了!

    现在我可以输入随机数(当然是来自数组,所以它们不会重复自己),计算行和列的结果,删除数字并完成我的拼图!

    如果没有除法运算符!

    当然,我们不希望我/最终用户试图除以质数或得到小数作为结果。

    现在我可以循环并“蛮力”,直到我找到在除法符号之前放入的完美数字,但这太......

    我希望有一种方法可以确保最初所有部门的结果都有意义……结果……

    有什么想法吗?

    编辑:

    让我添加一些我刚刚想到的一些随机想法,这些想法对我来说似乎很有意义:

    首先,当我更改拼图中的数字时,它将对整个拼图生效。所以改变数字,包括所有类型的蛮力,是性能杀手(除了它的 naff 之外)。

    所以一个合乎逻辑的结果是首先开始只在发生 split 的地方包括数字。

    我们可以使用一个数字作为我们首先通过乘以其他数字来计算的“乘积”,以确保该数字不是质数并有一个因数。

    但是,如果其中一个因数是质数,并且再次发生除法,会发生什么?

    如果我们反复使用一个数字乘以另一个数字来获得一个非质数因子,这将减少我们谜题中数字的多样性,从而使整个事情变得不那么有趣。

    当我们“逆向工程”时,拼图中的乘法会发生什么?
    他们会自动“成为 split ”,问题又重新开始。

    请让一些数学家来称我为笨蛋并提出一个非常简单的解决方案......

    最佳答案

    试试这个:

    $num = integer; // the number before /
    $factors = array(1, $num); // allowed numbers after / (1 and $num are always allowed)

    // loop through whole numbers up to the original $num
    for($i = 2; $i < $num ; $i++) {
    // if $i can devide $num, save it and the other factor
    if($num % $i == 0) {

    // if $i is there, we have gone through all factors, no need to loop anymore
    if(in_array($i, $factors)) {
    break;
    }

    // save $i and $num / $i
    $factors[] = $i;
    if($i != $num / $i) { // do not save $i twice
    $factors[] = $num / $i;
    }
    }
    }

    并使用 $factors 数组中的随机数作为“/”后的数字。

    关于填写数字(伪代码):
    R = row, C = collumn
    for(R; R < max rows; R = R+2) { // R+2 to skip sign rows
    for(C; C < max cols; C = C+2) { // C+2 to skip sign columns

    if(C-1 == / && R-1 == / && C >= 2 && R >= 2) {
    find factors of C - 2;
    find factors of R - 2;
    select number from subsection of these (should be at least 1)
    }

    else if (C-1 == / && C >= 2) {
    select number from factors of C-2
    }

    else if (R-1 == / && R >= 2) {
    select number from factors of R-2
    }

    else {
    select any number (maybe select just non-prime numbers here)
    }
    }
    }

    不想承认,这就是我今天的全部脑力了……以后有没有什么有趣的发展我会去看看。

    关于php - 如何用 PHP 创建一个 "Math Square"拼图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12200099/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com