-
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: "M.M." <m...@N...gazeta.pl>
Newsgroups: pl.comp.programming
Subject: Sumowanie
Date: Mon, 16 Jan 2012 11:02:34 +0000 (UTC)
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 62
Message-ID: <jf1049$7pn$1@inews.gazeta.pl>
NNTP-Posting-Host: localhost
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: inews.gazeta.pl 1326711754 7991 172.20.26.235 (16 Jan 2012 11:02:34 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Mon, 16 Jan 2012 11:02:34 +0000 (UTC)
X-User: mariotti
X-Forwarded-For: 89.229.34.123
X-Remote-IP: localhost
Xref: news-archive.icm.edu.pl pl.comp.programming:194718
[ ukryj nagłówki ]Hey
Jestem prawie pewny ze jest na to analityczny wzor. Przypomni
ktos? Problem: na ile sposobow mozna zsumowac N liczb,
tak aby kazdy skladnik byl z przedzialu domknietego <0,M> i
suma zeby wynosila M. Oczywiscie chodzi o liczby calkowite.
Przykladowe sumy dla N=3 i M=5
5 + 0 + 0 = 5 // poprawna
3 + 2 + 0 = 5 // poprawna
2 + 2 + 1 = 5 // poprawna
2 + 2 + 2 = 6 // niepoprawna
2 + 2 + 0 = 4 // niepoprawna
-1 + 6 + 0 = 5 // niepoprawna
Dla liczb z przedzialu od 1 do M mozna to zadanie rozwiazac zamieniajac
kodowanie binarne na kodowanie unarne. Np. na ile sposobow mozna zsumowac
3 liczby aby uzyskac 10? Kreski to liczby kodowane unarnie, a dwukropki
to separatory pomiedzy liczbami:
||:|||||:||| -> 2 + 5 + 3 = 10
Teraz widac ze zadanie mozna przedefinowac:
Na ile sposobow mozna rozstawic dwukropki pomiedzy kreskami?
Mamy (9 nad 2) = 36
A jak to rozwiazac jesli zera tez sa dozwolone? Ponizszy programik niby
rozwiazuje, ale ma zlozonosc wykladnicza wzgledem (M+1) ^ N :/
Pozdrawiam
----------------------------------------------------
-------------------
#include <cstdlib>
#include <cstdio>
#define MAX (8) // M
#define DEPTH (10) // N
typedef int ityp;
typedef const int cityp;
typedef unsigned int utyp;
typedef const unsigned int cutyp;
static utyp find( cutyp sum=0 , cutyp depth=0 ) {
if( depth == DEPTH )
return sum == MAX; // if( sum == MAX ) return 1; else return 0;
utyp res = 0;
for( ityp i=0 ; i<=MAX ; i++ )
res += find( sum+i , depth+1 );
return res;
}
int main( int argc, char *argv[] ) {
utyp sum = find();
printf("sum = %u\n",sum);
return 0;
}
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 16.01.12 11:36
- 16.01.12 12:46 f...@g...pl
- 16.01.12 12:58 Mirek
- 17.01.12 08:04 M.M.
- 17.01.12 09:30 Stachu 'Dozzie' K.
- 17.01.12 09:33 Roman W
- 17.01.12 11:03 M.M.
- 17.01.12 11:15 Jacek
- 17.01.12 11:17
- 17.01.12 11:19 Stachu 'Dozzie' K.
- 17.01.12 11:24 Stachu 'Dozzie' K.
- 17.01.12 14:31 Roman W
- 17.01.12 14:30 Roman W
- 17.01.12 15:00 Jacek
- 17.01.12 15:30 M.M.
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-26 Brak bolca ochronnego ładowarki oznacza pożar
- 2025-01-24 Elektryfikacja w ODWROCIE
- 2025-01-25 AMS spalony szybkim zasilaczem USB
- 2025-01-24 stalowe bezpieczniki
- 2025-01-23 Zenek Kapelinder - ?
- 2025-01-25 Błonie => Sales Specialist <=
- 2025-01-25 Lublin => iOS Developer (Swift) <=
- 2025-01-24 Warszawa => Java Developer <=
- 2025-01-24 Białystok => iOS Developer (Swift experience) <=
- 2025-01-24 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-24 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-01-24 Lublin => Delphi Programmer <=
- 2025-01-24 Kraków => Key Account Manager <=
- 2025-01-24 Lublin => Programista Delphi <=
- 2025-01-24 Wróblewo => Specjalista ds. Analiz Finansowych <=