kategoria: ANSI C
[#1] Dwumian newtona program
Cześć, dostałem zadanie zaprogramować dwumian newtona na studiach (mam problem po stronie matematycznej :/) wykonałem program używając 'double':

double silniaN (double n)
{
int i=1;
double silnia=1.0;
for (i=1; i<=n; i++)
{
silnia= i* silnia;
}
return (silnia);
}

Zrobiłem 3 silnie jedna dla n!, dla k! i dla (n-k)!. Wszystko działa ale profesor odesłał mnie żebym zrobił to na intigerze, bo np. przy 100!/99! będą tam olbrzymie liczby...

Pytanie jak to matematycznie uprościć, żeby liczyć na wystarczająco małych liczbach (dla intigera?)
[#2] Re: Dwumian newtona program

@dawid12464, post #1

Najlepiej problem rozwiazc poslugujac sie Trojkatem Pascala.
Mozna go wyliczyc metoda rekurencyjna. Oto prosty przyklad:

#include <stdio.h>

int Pascal(int n, int k);

int main(void)
{
        printf("%d\n", Pascal(5, 3));
       
        return(0);
}

int Pascal(int n, int k)
{
        int x;
        
        if((k == 0) || (k== n))
        {
                x= 1;
        }
        else
        {
                x = Pascal(n-1, k-1) + Pascal(n-1, k);
        }
        
        return(x);
}
3
[#3] Re: Dwumian newtona program

@dawid12464, post #1

Możesz też zwyczajnie pozbyć się silni (rozwijając silnie i skracając - oczywiście na papierze) i wtedy będzie prosty wzór, oczywiście trzeba pamiętać o przypadkach trywialnych.
1
[#4] Re: Dwumian newtona program

@Phibrizzo, post #2

Phibzz sory ale musiałem to napisać.
Cytując z najsłynniejszej radzieckiej powieści o szatanach w Moskwie "...żaden to dwumian Newtona...".
(oczywiście przykład jest dobry tylko ten cyctat bardzo lubię :) )

Ostatnia aktualizacja: 08.12.2021 09:33:18 przez jimiche
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem