Sdílet prostřednictvím


comb_fl()

Výpočet C(n; k)

Funkce comb_fl() je uživatelem definovaná funkce (UDF), která vypočítá C(n, k) počet kombinací pro výběr položek k z n bez pořadí. Je založená na nativní funkci gamma() pro výpočet faktoriálu. Další informace najdete v tématu facorial_fl(). Pro výběr položek k s pořadím použijte perm_fl().

Syntax

comb_fl(n, k)

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Typ Vyžadováno Popis
n int, long nebo real ✔️ Celkový počet položek.
K int, long nebo real ✔️ Vybraný počet položek

Definice funkce

Funkci můžete definovat tak, že buď vložíte její kód jako funkci definovanou dotazem, nebo ji vytvoříte jako uloženou funkci v databázi, a to následujícím způsobem:

Definujte funkci pomocí následujícího příkazu let. Nejsou vyžadována žádná oprávnění.

Důležité

Příkaz let nemůže běžet samostatně. Za ním musí následovat příkaz tabulkového výrazu. Pokud chcete spustit funkční příklad , comb_fl()podívejte se na příklad.

let comb_fl=(n:int, k:int)
{
    let fact_n = gamma(n+1);
    let fact_nk = gamma(n-k+1);
    let fact_k = gamma(k+1);
    tolong(fact_n/fact_nk/fact_k)
};
// Write your query to use the function here.

Příklad

Pokud chcete použít funkci definovanou dotazem, vyvoláte ji po definici vložené funkce.

let comb_fl=(n:int, k:int)
{
    let fact_n = gamma(n+1);
    let fact_nk = gamma(n-k+1);
    let fact_k = gamma(k+1);
    tolong(fact_n/fact_nk/fact_k)
};
range n from 3 to 10 step 3
| extend k = n-2
| extend cnk = comb_fl(n, k)

Výstup

n k cnk
3 1 3
6 4 15
9 7 36