Board logo

標題: 请问谁懂PHP啊?望赐教 [打印本頁]

作者: bbsuser_alucard    時間: 2007-10-3 21:31     標題: 请问谁懂PHP啊?望赐教

如何用PHP写一个表达式,结果RETURN的是所有由1,2,3,4组成的包含4个元素的全部组合.
即: (怎样可以让程序写出如下排列)
1,2,3,4
1,2,4,3
1,3,2,4
1,3,4,2
.....
.....
4,3,2,1

望高手指点,谢谢
作者: fsnow    時間: 2007-10-24 22:27     標題: 不会是作业吧?

给你个最基本的,还可以一些更聪明的方法比如用bitwise的方式,自己去研究吧。

for ($a=1; $a<5; $a++) {
    for ($b=1; $b<5; $b++) {
        for ($c=1; $c<5; $c++) {
            for ($d=1; $d<5; $d++) {
                printf("%d, %d, %d, %d", $a,$b,$c,$d);
            }
        }
    }
}
作者: jayzhou_2046    時間: 2007-10-25 11:09

引用:
原帖由 fsnow 於 2007-10-24 22:27 發表
给你个最基本的,还可以一些更聪明的方法比如用bitwise的方式,自己去研究吧。

for ($a=1; $a<5; $a++) {
    for ($b=1; $b<5; $b++) {
        for ($c=1; $c<5; $c++)  ...
根據閣下的源代碼, 輸出將會重覆的數字出現如:
1, 1, 1, 1
1, 1, 1, 2
1, 1, 1, 3
...
作者: fsnow    時間: 2007-10-27 18:40

Oh, 抱歉抱歉~~没有看清问题。

这个其实就是Bubble sort嘛~只不过要把通常的从小到大的排序方式反过来而已。给你个link自己试试看咯~

http://en.wikipedia.org/wiki/Bubble_sort
作者: yl_cheng    時間: 2007-10-27 23:32     標題: 回復 #4 fsnow 的帖子

應該係想要所有 "combinations" (nCr).




歡迎光臨 香港 Xocat Forum 討論區 (http://p.xocat.com/p/) Powered by Discuz! 6.0.0