Witam serdecznie otóż mam problem :/ Nie moge jakos wymyslec jak to zrobic .
Pozatym rekurencyjnie ma być ;/
Doszedlem do tego ,że wypisuje np:. 10=10 , 10=9 etc ale cos z dolaczeniem +1 jest problem
aby dla jakieś tam liczby wczytanej z klawiatury wypisał jej rozkłady na sumy nieujemnych (dodatnich) liczb naturalnych większych od 1 i muszą być ustawione w kolejności nierosnącej (malejącej).
Np:. dla liczby 4
4=4
4=3+1
4=2+1+1
4=1+1+1+1
I takie wyniki ma zapisać do pliku
Pomożecie ? Pozdrawiam
[C] Rozklad sumy
[C] Rozklad sumy
Dzieki Nie powiem ,że to to ,ale to już matematyka wyższej jazdy niestety
a i kodu źródłowego w C nie moge znaleźć szczególnie z rekurencja ;/
a i kodu źródłowego w C nie moge znaleźć szczególnie z rekurencja ;/
[C] Rozklad sumy
poszukaj "fxtbook", rzecz którą trzeba mieć.
w swoich notatkach znalazłem takie coś, magiczna zwięzłość
w swoich notatkach znalazłem takie coś, magiczna zwięzłość
Kod: Zaznacz cały
(*
/*========================================================================*/
/* C program for distribution from Frank Ruskey's */
/* Combinatorial Object Server. */
/* Generates all numerical partitions of n whose largest part is k. */
/* No input error checking. Assumes 0 <= k <= n <= MAX. */
/* A simple modification will generate all partitions of n (see */
/* comment at end of program.) */
/* Algorithm is CAT (Constant Amortized Time). */
/* The program can be modified, translated to other languages, etc., */
/* so long as proper acknowledgement is given (author and source). */
/* Algorithm and original Pascal implementation: Frank Ruskey, 1995. */
/* Translation to C: Joe Sawada, 1997. */
/* The latest version of this program may be found at the site */
/* http://theory.cs.uvic.ca/~cos/inf/nump/NumPartition.html or */
/* http://theory.uvic.ca/~cos/dis/programs.html */
/*========================================================================*/
#define MAX 100;
int n,k;
int p[100];
int min( int x, int y) {
if (x<y) return x;
return y;
}
void PrintIt(int t) {
int i;
for(i=1; i<=t; i++) printf("%d ", p[i]);
printf("\n");
}
void P (int n, int k, int t) {
int j;
p[t] = k;
if (n==k)
PrintIt(t);
for (j=min(k,n-k); j>=1; j--)
P(n-k,j,t+1);
}
void main() {
printf("Enter n,k: ");
scanf("%d %d", &n ,&k );
P( n,k,1 );
/* NOTE: The call P( 2*n, n, 0 ) will produce all partitions of n. */
}
[C] Rozklad sumy
a gdzie to znalazles ???????? sa strony
Dzieki serdeczne !
Tyle szukałem a tu prosze
Klikam pomogł
[ Dodano: 11 Marca 2008, 15:55 ]
a tak na marginesie orientujesz do czego słuszy liczba k ?
Wiadomo n to liczba ktora chcemy rozlozyc a k ? Stopien jej rozlozenia ?
pozdro
Dzieki serdeczne !
Tyle szukałem a tu prosze
Klikam pomogł
[ Dodano: 11 Marca 2008, 15:55 ]
a tak na marginesie orientujesz do czego słuszy liczba k ?
Wiadomo n to liczba ktora chcemy rozlozyc a k ? Stopien jej rozlozenia ?
pozdro