function super_croissance_check($tab = array())
{
    $current_tab = array();
    if (!count_tab($tab)) {
        echo "ceci est pas un tableau\n";
        return false;
    } else {
        // tableau de check
        $tab_check = array();
        $current_tab = count_tab($tab);
        for ($i = 0; $i < $current_tab; $i++) {
            $actual_count = $i;
            // si c'est diferrent de zero
            for ($j = 0; $j < $actual_count; $j++) {
                // on push les valeur dans un autre tableau
                array_push($tab_check, $tab[$j]);
            }
            // on place la somme du tableau dans une variable
            $result = array_sum($tab_check);
            // si le tableau n'est pas une supercroissante
            if ($tab[$actual_count] < $result) {
                echo "le tableau n'est pas une suite supercroissante\n";
                return false;
            }
            // on reset le tableau pour le prochain resultat
            $tab_check = array();
        }
        // on affiche un message si c'est bien une suite supercroissante
        return true;
    }
}
Exemple #2
0
function decryptMessToBin($key = array(), $mess = array(), $bloc_limit)
{
    $key_count = count_tab($key);
    $mess_count = count_tab($mess);
    $result = null;
    $bin_result = null;
    $full_bin_mess = null;
    $tmp_array = array();
    $array_new = array();
    $array_sort = array();
    $sort_bin_array = array();
    $bloc_limit = $bloc_limit - 1;
    // on met le tableau non ordonné dans un tableau vide
    $array_new = $key;
    natsort($array_new);
    // on doit ordonner le tableau pour decrypter le message
    foreach ($array_new as $values_in_array) {
        array_push($array_sort, $values_in_array);
    }
    // prendre les valeur dans le tableau
    for ($i = 0; $i < $mess_count; $i++) {
        $tmp_value = $mess[$i];
        if ($tmp_value == 0) {
            $full_bin_mess .= 0;
        }
        while ($tmp_value > 0) {
            for ($j = $key_count - 1; $j >= 0; $j--) {
                if ($tmp_value >= $array_sort[$j]) {
                    $tmp_value -= $array_sort[$j];
                    $result += $array_sort[$j];
                    // on push le resultat dans un tableau temporaire
                    array_push($tmp_array, $array_sort[$j]);
                }
            }
            // dans le cas ou si jamais une piece du tableau comporte des zero
            // la variable K doit etre égal au limiteur - 1, par exemple si on utilise 7 comme limiteur, alors k devra 6
            for ($k = $bloc_limit; $k >= 0; $k--) {
                if (in_array($key[$k], $tmp_array)) {
                    $bin_result .= 1;
                } else {
                    $bin_result .= 0;
                }
            }
            $full_bin_mess .= $bin_result;
            $bin_result = null;
            $tmp_array = array();
        }
    }
    $sort_bin_array = sortBinMess($full_bin_mess);
    sortBinMessToRealMess($sort_bin_array);
}