gpt4 book ai didi

php - 在 PHP 的 for 循环中使用模式

转载 作者:搜寻专家 更新时间:2023-10-31 21:08:09 25 4
gpt4 key购买 nike

我正在尝试创建一个程序来计算字母的所有排序可能性,这是它的逻辑。您只需输入即可调用该函数,并且有 2^n(n 是输入值)种可能性。如果输入3,我们知道有8种情况,系统通过统计输入的值自动生成一个字符串,例如:ABC。排序如下:

ABC
ABc
AbC
Abc
aBC
aBc
abC
abc

如您所见,通过每次将可能性除以 2,将字母大写或小写。我无法在我的 for 循环中处理它,你能帮帮我吗?这是代码:

 function f($hyb, $rand=false) {
$result="";
$characters=array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
if ($rand) {
shuffle($characters);
}
for ($i=1; $i<=pow(2, $hyb); $i++) {
$string=implode(array_slice($characters, 0, $hyb));
if ($i%2==1) {
}
else if ($i%2==0) {
}
}
return $result;
}
echo f(2);

应该返回 AB Ab aB ab

最佳答案

下面是一个函数,可以满足您的需求。

function f($x) {
$result = array();
$characters = range("A", "Z");
$max = pow(2, $x);
for ($i = 0; $i < $max; $i++) {
$val = "";
$bit = pow(2, $x);
for ($y = 0; $y < $x; $y++) {
$bit >>= 1;
$chr = $characters[$y];
if ($i & $bit) {
$chr = strtolower($chr);
}
$val .= $chr;
}
$result[] = $val;
}
return $result;
}

与您的函数的几个不同之处是:未实现 shuffle 函数,并且上述函数返回数组而不是字符串。

关于php - 在 PHP 的 for 循环中使用模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28793852/

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