関数メソッドの作成を手伝ってくれる専門家はいますか?

WBOY
リリース: 2016-06-13 13:34:03
オリジナル
691 人が閲覧しました

関数メソッドの作成を手伝ってくれる人はいますか?
私は最近宝くじの問題を勉強していますが、複素数の分解に関する問題が常に頭を悩ませています。


PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
/**
比如4个号码分解成3个号码和2个号码
4码:[1,2,3,4] 一组号码
分解成3码后:[1,2,3] [1,2,4] [1,3,4] [2,3,4] 四组三位数的号码
分解成2码后:[1,2] [1,3] [1,4] [2,3] [2,4] [3,4] 六组二位数的号码
不考虑位置

又如5个号码分解成4个号码
4码:[1,2,3,4,5] 一组号码
分解成4码后:[1,2,3,4] [1,2,3,5] [1,2,4,5] [1,3,4,5] [2,3,4,5]四组四位数的号码
分解成3码后:[1,2,3] [1,2,4] [1,2,5] [1,3,4] [1,3,5] [1,4,5] [2,3,4] [2,3,5] [2,4,5] [3,4,5] 十组三位数的号码
分解成2码后:[1,2] [1,3] [1,4] [1,5] [2,3] [2,4] [2,5] [3,4] [3,5] [4,5] 十组二位数的
-------------------------------------------------
大家应该看出规律了吧
谁能帮我写个方法
array lottery(array $num, int $i){
}
@param $num 是指一组数字
@param $i 是指分解的码数
返回结果数组

如
$arr1 = lottery(array(1,2,3,4,5), 4);
$arr2 = lottery(array(1,2,3,4,5), 3);
此时
$arr1 的值应该是一个数组
[1,2,3,4] [1,2,3,5] [1,2,4,5] [1,3,4,5] [2,3,4,5]
而$arr2 的值也是一个数组
分解成3码后:[1,2,3] [1,2,4] [1,2,5] [1,3,4] [1,3,5] [1,4,5] [2,3,4] [2,3,5] [2,4,5] [3,4,5]




这个问题我反复研究过,貌似挺难的。。过年了,给66分,祝答题者六六大顺
*/

ログイン後にコピー


------解決策------------ - -------
これをコピーしてここに貼り付けます。この実装は比較的効率的なアルゴリズムです。
PHP コード

関数 Combination($arr, $size = 1) {
    $len = カウント($arr);
    $max = pow(2,$len) - pow(2,$len-$size);
    $min = pow(2,$size)-1;
 
    $r_arr = 配列();
    for ($i=$min; $i 配列
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => 配列
        (
            [0] => 1
            [1] => 2
            [2] => 4
        )

    [2] => 配列
        (
            [0] => 1
            [1] => 3
            [2] => 4
        )

    [3] => 配列
        (
            [0] => 2
            [1] => 3
            [2] => 4
        )

    [4] => 配列
        (
            [0] => 1
            [1] => 2
            [2] => 5
        )

    [5] => 配列
        (
            [0] => 1
            [1] => 3
            [2] => 5
        )

    [6] => 配列
        (
            [0] => 2
            [1] => 3
            [2] => 5
        )

    [7] => 配列
        (
            [0] => 1
            [1] => 4
            [2] => 5
        )

    [8] => 配列
        (
            [0] => 2
            [1] => 4
            [2] => 5
        )

    [9] => 配列
        (
            [0] => 3
            [1] => 4
            [2] => 5
        )

)
*/ <div class="clear"></div>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!