Kezdőoldal » Közoktatás, tanfolyamok » Házifeladat kérdések » Hányféleképpen bontható fel 4...

Hányféleképpen bontható fel 4 nemnegatív egész szám összegére a 100?

Figyelt kérdés
Szerintünk (mmint itt matekon :D) nem egyszerű ismétléses kombináció.
2010. jan. 20. 08:34
1 2
 1/16 anonim ***** válasza:
sztem 600 féleképpen. Úgy csináltam, h elkezdtem felírni h (már ha a 0 is számít) 0+1+2+97, aztán 0+1+3+96... itt az utolsó 2 szám összege 99,ebből lehet összesen 48 eset az utolsó az, hogy 0+1+49+50. Aztán folytattam h 1+2+3+94...utolsó két szám összege 97 és összesen 46 féleképpen írhatod le ha 1+2...-vel kezded. Ebből már látsztik hogyha ugyanígy folytatom, akkor ha 2-vel kezdem a következő "menetet" akkor 44-szer lehet, aztán 42-szer... és ha összeadom a 48+46+44...+4+2, akkor 600-at kapok.
2010. jan. 20. 10:08
Hasznos számodra ez a válasz?
 2/16 A kérdező kommentje:

Még az a bibi, hogy ismétlődhetnek a számok, szóval a 0+0+0+100 is számít o.O


(A megoldásban úgy volt, hogy 100-ból 4-et választott ki ismétléses kombinációval. Ez eddig okés, de ezek közül még ki kellene választani azokat, amelyekre igaz az, hogy az összegük 100, de a feladat nem taglalta tovább, és ez így nyilvánvalónak tűnik, hogy helytelen, vagy nem értjük, hogy miért kellene így lennie.)

2010. jan. 20. 10:25
 3/16 anonim ***** válasza:

Az ismétléses kombináció, az az, hogy leküldenek a közértbe, hogy vegyek száz édességet, a közértben van csoki, cukor, fagylalt, süti? És ahányféleképpen meg tudom venni a száz darab édesipari terméket, azt hívtuk 100-nak négy lapú (rendű?) ismétléses kombinációjának?


Végülis akkor stimmel a dolog, hiszen a db csoki, b db cukor, c db fagyi, d db süti, és a + b + c + d = 100. Szóval most egyelőre számomra úgy tűnik, tényleg erről van szó.


Na most hogy is kell ezt elképzelni, kiszámolni? Mi golyókkal és pálcikákkal modelleztük.


Van száz db golyón, és 3 db pálcikánk. A golyók modellezik az egyes édességeket, a pálcikákat pedig arra használjuk, hogy az egyes kategóriákat elválasszuk egymástól. Állapodjunk meg egy sorredben (csoki, cukor, fagyi, süti)


|||ooooooooooooooooo....


ez azt jelent, hogy 0 db csoki, 0 db cukior, 0 db fagyi, 100 db süti.


Nézzünk más példát:


|o|oo|ooooooooooooooooo....


0 db csoki, 1 db cuki, 2 db fagyi, 97 db süti


Még egyet:


o|oo|ooo|ooooooooooooooooo....


1 db csoki, 2 db cuki, 3 db fagyi, 94 db süti


Azt hiszem látszik a lényeg. (Elég 3 pálcika, nem 4 kell!) Minden egyes szituációt pontosan modellezhetek így. Nincs olyan szituáció, amit ne jelölhetnék így, és nincs két olyan különböző szituáció, amit ugyanúgy jelölne ez rendszer. Szóval ez a jelölés hűen és pontosan ábrázol minden egyes lehetséges szituációt.


No most már az a kérdés, hányfélelépp tudok elrendezni 100 golyót és 3 pálcikát. (A golyókat nem különböztetem meg egymás között, és a pálcikákat sem különböztetem meg egymás között).


Ezt már meg tudom mondani, hosz ez egy egyszerű ismétléses permutációs feladat. 100 + 3 db tárgyam van, ebből a 100 golyót azonosnak veszem egymás között, és a 3 pálcikát is azonosnak veszem egymás között.


(100 + 3)! / (100! ⋅ 3!)

2010. jan. 20. 12:39
Hasznos számodra ez a válasz?
 4/16 anonim ***** válasza:

Csináltam egy ellenőrzést Haskell nyelven. Egyszerűsség és áttekinthetőség kedvéért 100 édesség helyett 10 édességre (a kategórák számát meghagytam továbbra is 4-nek).


There are 286 occurrences.

Verification: (10 + 3)! / (10! 3!) = 286

Verification succeeded.

[(0,0,0,10),(0,0,1,9),(0,0,2,8),(0,0,3,7),(0,0,4,6),(0,0,5,5),(0,0,6,4),(0,0,7,3),(0,0,8,2),(0,0,9,1),(0,0,10,0),(0,1,0,9),(0,1,1,8),(0,1,2,7),(0,1,3,6),(0,1,4,5),(0,1,5,4),(0,1,6,3),(0,1,7,2),(0,1,8,1),(0,1,9,0),(0,2,0,8),(0,2,1,7),(0,2,2,6),(0,2,3,5),(0,2,4,4),(0,2,5,3),(0,2,6,2),(0,2,7,1),(0,2,8,0),(0,3,0,7),(0,3,1,6),(0,3,2,5),(0,3,3,4),(0,3,4,3),(0,3,5,2),(0,3,6,1),(0,3,7,0),(0,4,0,6),(0,4,1,5),(0,4,2,4),(0,4,3,3),(0,4,4,2),(0,4,5,1),(0,4,6,0),(0,5,0,5),(0,5,1,4),(0,5,2,3),(0,5,3,2),(0,5,4,1),(0,5,5,0),(0,6,0,4),(0,6,1,3),(0,6,2,2),(0,6,3,1),(0,6,4,0),(0,7,0,3),(0,7,1,2),(0,7,2,1),(0,7,3,0),(0,8,0,2),(0,8,1,1),(0,8,2,0),(0,9,0,1),(0,9,1,0),(0,10,0,0),(1,0,0,9),(1,0,1,8),(1,0,2,7),(1,0,3,6),(1,0,4,5),(1,0,5,4),(1,0,6,3),(1,0,7,2),(1,0,8,1),(1,0,9,0),(1,1,0,8),(1,1,1,7),(1,1,2,6),(1,1,3,5),(1,1,4,4),(1,1,5,3),(1,1,6,2),(1,1,7,1),(1,1,8,0),(1,2,0,7),(1,2,1,6),(1,2,2,5),(1,2,3,4),(1,2,4,3),(1,2,5,2),(1,2,6,1),(1,2,7,0),(1,3,0,6),(1,3,1,5),(1,3,2,4),(1,3,3,3),(1,3,4,2),(1,3,5,1),(1,3,6,0),(1,4,0,5),(1,4,1,4),(1,4,2,3),(1,4,3,2),(1,4,4,1),(1,4,5,0),(1,5,0,4),(1,5,1,3),(1,5,2,2),(1,5,3,1),(1,5,4,0),(1,6,0,3),(1,6,1,2),(1,6,2,1),(1,6,3,0),(1,7,0,2),(1,7,1,1),(1,7,2,0),(1,8,0,1),(1,8,1,0),(1,9,0,0),(2,0,0,8),(2,0,1,7),(2,0,2,6),(2,0,3,5),(2,0,4,4),(2,0,5,3),(2,0,6,2),(2,0,7,1),(2,0,8,0),(2,1,0,7),(2,1,1,6),(2,1,2,5),(2,1,3,4),(2,1,4,3),(2,1,5,2),(2,1,6,1),(2,1,7,0),(2,2,0,6),(2,2,1,5),(2,2,2,4),(2,2,3,3),(2,2,4,2),(2,2,5,1),(2,2,6,0),(2,3,0,5),(2,3,1,4),(2,3,2,3),(2,3,3,2),(2,3,4,1),(2,3,5,0),(2,4,0,4),(2,4,1,3),(2,4,2,2),(2,4,3,1),(2,4,4,0),(2,5,0,3),(2,5,1,2),(2,5,2,1),(2,5,3,0),(2,6,0,2),(2,6,1,1),(2,6,2,0),(2,7,0,1),(2,7,1,0),(2,8,0,0),(3,0,0,7),(3,0,1,6),(3,0,2,5),(3,0,3,4),(3,0,4,3),(3,0,5,2),(3,0,6,1),(3,0,7,0),(3,1,0,6),(3,1,1,5),(3,1,2,4),(3,1,3,3),(3,1,4,2),(3,1,5,1),(3,1,6,0),(3,2,0,5),(3,2,1,4),(3,2,2,3),(3,2,3,2),(3,2,4,1),(3,2,5,0),(3,3,0,4),(3,3,1,3),(3,3,2,2),(3,3,3,1),(3,3,4,0),(3,4,0,3),(3,4,1,2),(3,4,2,1),(3,4,3,0),(3,5,0,2),(3,5,1,1),(3,5,2,0),(3,6,0,1),(3,6,1,0),(3,7,0,0),(4,0,0,6),(4,0,1,5),(4,0,2,4),(4,0,3,3),(4,0,4,2),(4,0,5,1),(4,0,6,0),(4,1,0,5),(4,1,1,4),(4,1,2,3),(4,1,3,2),(4,1,4,1),(4,1,5,0),(4,2,0,4),(4,2,1,3),(4,2,2,2),(4,2,3,1),(4,2,4,0),(4,3,0,3),(4,3,1,2),(4,3,2,1),(4,3,3,0),(4,4,0,2),(4,4,1,1),(4,4,2,0),(4,5,0,1),(4,5,1,0),(4,6,0,0),(5,0,0,5),(5,0,1,4),(5,0,2,3),(5,0,3,2),(5,0,4,1),(5,0,5,0),(5,1,0,4),(5,1,1,3),(5,1,2,2),(5,1,3,1),(5,1,4,0),(5,2,0,3),(5,2,1,2),(5,2,2,1),(5,2,3,0),(5,3,0,2),(5,3,1,1),(5,3,2,0),(5,4,0,1),(5,4,1,0),(5,5,0,0),(6,0,0,4),(6,0,1,3),(6,0,2,2),(6,0,3,1),(6,0,4,0),(6,1,0,3),(6,1,1,2),(6,1,2,1),(6,1,3,0),(6,2,0,2),(6,2,1,1),(6,2,2,0),(6,3,0,1),(6,3,1,0),(6,4,0,0),(7,0,0,3),(7,0,1,2),(7,0,2,1),(7,0,3,0),(7,1,0,2),(7,1,1,1),(7,1,2,0),(7,2,0,1),(7,2,1,0),(7,3,0,0),(8,0,0,2),(8,0,1,1),(8,0,2,0),(8,1,0,1),(8,1,1,0),(8,2,0,0),(9,0,0,1),(9,0,1,0),(9,1,0,0),(10,0,0,0)]

2010. jan. 20. 13:39
Hasznos számodra ez a válasz?
 5/16 anonim ***** válasza:

De rondán tördelte. Még egyszer:


There are 286 occurences.

Verification: (10 + 3)! / (10! 3!) = 286

Verification succeeded.

[(0,0,0,10),(0,0,1,9),(0,0,2,8),(0,0,3,7),(0,0,4,6),(0,0,5,5),(0,0,6,4),(0,0,7,3),(0,0,8,2),(0,0,9,1),(0,0,10,0),(0,1,0,9),(0,1,1,8),(0,1,2,7),(0,1,3,6),(0,1,4,5),(0,1,5,4),(0,1,6,3),(0,1,7,2),(0,1,8,1),(0,1,9,0),(0,2,0,8),(0,2,1,7),(0,2,2,6),(0,2,3,5),(0,2,4,4),(0,2,5,3),(0,2,6,2),(0,2,7,1),(0,2,8,0),(0,3,0,7),(0,3,1,6),(0,3,2,5),(0,3,3,4),(0,3,4,3),(0,3,5,2),(0,3,6,1),(0,3,7,0),(0,4,0,6),(0,4,1,5),(0,4,2,4),(0,4,3,3),(0,4,4,2),(0,4,5,1),(0,4,6,0),(0,5,0,5),(0,5,1,4),(0,5,2,3),(0,5,3,2),(0,5,4,1),(0,5,5,0),(0,6,0,4),(0,6,1,3),(0,6,2,2),(0,6,3,1),(0,6,4,0),(0,7,0,3),(0,7,1,2),(0,7,2,1),(0,7,3,0),(0,8,0,2),(0,8,1,1),(0,8,2,0),(0,9,0,1),(0,9,1,0),(0,10,0,0),(1,0,0,9),(1,0,1,8),(1,0,2,7),(1,0,3,6),(1,0,4,5),(1,0,5,4),(1,0,6,3),(1,0,7,2),(1,0,8,1),(1,0,9,0),(1,1,0,8),(1,1,1,7),(1,1,2,6),(1,1,3,5),(1,1,4,4),(1,1,5,3),(1,1,6,2),(1,1,7,1),(1,1,8,0),(1,2,0,7),(1,2,1,6),(1,2,2,5),(1,2,3,4),(1,2,4,3),(1,2,5,2),(1,2,6,1),(1,2,7,0),(1,3,0,6),(1,3,1,5),(1,3,2,4),(1,3,3,3),(1,3,4,2),(1,3,5,1),(1,3,6,0),(1,4,0,5),(1,4,1,4),(1,4,2,3),(1,4,3,2),(1,4,4,1),(1,4,5,0),(1,5,0,4),(1,5,1,3),(1,5,2,2),(1,5,3,1),(1,5,4,0),(1,6,0,3),(1,6,1,2),(1,6,2,1),(1,6,3,0),(1,7,0,2),(1,7,1,1),(1,7,2,0),(1,8,0,1),(1,8,1,0),(1,9,0,0),(2,0,0,8),(2,0,1,7),(2,0,2,6),(2,0,3,5),(2,0,4,4),(2,0,5,3),(2,0,6,2),(2,0,7,1),(2,0,8,0),(2,1,0,7),(2,1,1,6),(2,1,2,5),(2,1,3,4),(2,1,4,3),(2,1,5,2),(2,1,6,1),(2,1,7,0),(2,2,0,6),(2,2,1,5),(2,2,2,4),(2,2,3,3),(2,2,4,2),(2,2,5,1),(2,2,6,0),(2,3,0,5),(2,3,1,4),(2,3,2,3),(2,3,3,2),(2,3,4,1),(2,3,5,0),(2,4,0,4),(2,4,1,3),(2,4,2,2),(2,4,3,1),(2,4,4,0),(2,5,0,3),(2,5,1,2),(2,5,2,1),(2,5,3,0),(2,6,0,2),(2,6,1,1),(2,6,2,0),(2,7,0,1),(2,7,1,0),(2,8,0,0),(3,0,0,7),(3,0,1,6),(3,0,2,5),(3,0,3,4),(3,0,4,3),(3,0,5,2),(3,0,6,1),(3,0,7,0),(3,1,0,6),(3,1,1,5),(3,1,2,4),(3,1,3,3),(3,1,4,2),(3,1,5,1),(3,1,6,0),(3,2,0,5),(3,2,1,4),(3,2,2,3),(3,2,3,2),(3,2,4,1),(3,2,5,0),(3,3,0,4),(3,3,1,3),(3,3,2,2),(3,3,3,1),(3,3,4,0),(3,4,0,3),(3,4,1,2),(3,4,2,1),(3,4,3,0),(3,5,0,2),(3,5,1,1),(3,5,2,0),(3,6,0,1),(3,6,1,0),(3,7,0,0),(4,0,0,6),(4,0,1,5),(4,0,2,4),(4,0,3,3),(4,0,4,2),(4,0,5,1),(4,0,6,0),(4,1,0,5),(4,1,1,4),(4,1,2,3),(4,1,3,2),(4,1,4,1),(4,1,5,0),(4,2,0,4),(4,2,1,3),(4,2,2,2),(4,2,3,1),(4,2,4,0),(4,3,0,3),(4,3,1,2),(4,3,2,1),(4,3,3,0),(4,4,0,2),(4,4,1,1),(4,4,2,0),(4,5,0,1),(4,5,1,0),(4,6,0,0),(5,0,0,5),(5,0,1,4),(5,0,2,3),(5,0,3,2),(5,0,4,1),(5,0,5,0),(5,1,0,4),(5,1,1,3),(5,1,2,2),(5,1,3,1),(5,1,4,0),(5,2,0,3),(5,2,1,2),(5,2,2,1),(5,2,3,0),(5,3,0,2),(5,3,1,1),(5,3,2,0),(5,4,0,1),(5,4,1,0),(5,5,0,0),(6,0,0,4),(6,0,1,3),(6,0,2,2),(6,0,3,1),(6,0,4,0),(6,1,0,3),(6,1,1,2),(6,1,2,1),(6,1,3,0),(6,2,0,2),(6,2,1,1),(6,2,2,0),(6,3,0,1),(6,3,1,0),(6,4,0,0),(7,0,0,3),(7,0,1,2),(7,0,2,1),(7,0,3,0),(7,1,0,2),(7,1,1,1),(7,1,2,0),(7,2,0,1),(7,2,1,0),(7,3,0,0),(8,0,0,2),(8,0,1,1),(8,0,2,0),(8,1,0,1),(8,1,1,0),(8,2,0,0),(9,0,0,1),(9,0,1,0),(9,1,0,0),(10,0,0,0)]

2010. jan. 20. 13:41
Hasznos számodra ez a válasz?
 6/16 anonim ***** válasza:

Most sem szebb. Mindenesetre megadom az ellenőrző program forráskódját (Haskell nyelven):


module Main where


import Data.List (genericLength)


main :: IO ()

main = do

let living = genericLength result

let dry = itcom nn 4

putStrLn ("There are " ++ show living ++ " occurences.")

putStrLn ("Verification: (" ++ show nn ++ " + 3)! / (" ++ show nn ++ "! 3!) = " ++ show dry)

if living == dry

then putStrLn "Verification succeeded."

else putStrLn "Verification failed."

print result


nn :: Integer

nn = 10


range :: [Integer]

range = [0..nn]


type Occurrence = (Integer, Integer, Integer, Integer)

type ResultSpace = [Occurrence]


result :: ResultSpace

result = [(a, b, c, d) | a <- range, b <- range, c <- range, d <-range, a + b + c + d == nn]


itcom :: Integer -> Integer -> Integer

itcom n (k + 1) = fac (n + k) `div` (fac n * fac k)


fac :: Integer -> Integer

fac 0 = 1

fac n'@(n +1) = n' * fac n



module Main where


import Data.List (genericLength)


main :: IO ()

main = do

let living = genericLength result

let dry = itcom nn 4

putStrLn ("There are " ++ show living ++ " occurences.")

putStrLn ("Verification: (" ++ show nn ++ " + 3)! / (" ++ show nn ++ "! 3!) = " ++ show dry)

if living == dry

then putStrLn "Verification succeeded."

else putStrLn "Verification failed."

print result


nn :: Integer

nn = 10


range :: [Integer]

range = [0..nn]


type Occurrence = (Integer, Integer, Integer, Integer)

type ResultSpace = [Occurrence]


result :: ResultSpace

result = [(a, b, c, d) | a <- range, b <- range, c <- range, d <-range, a + b + c + d == nn]


itcom :: Integer -> Integer -> Integer

itcom n (k + 1) = fac (n + k) `div` (fac n * fac k)


fac :: Integer -> Integer

fac 0 = 1

fac n'@(n +1) = n' * fac n

~

~

~

~

~

"Main.hs" 33L, 818C 1,1 All

2010. jan. 20. 13:43
Hasznos számodra ez a válasz?
 7/16 anonim ***** válasza:

valamiért kétszer ment el, de egyébként jó az ellenőrző program. Egyenként végigpróbálgatja az összes lehetőséget mind a négy számon 0-tól tízig, ellenőrzi, hogy tényleg 10-e a négy szám összege, majd összeszámlálja a jó megoldásokat.


Ezután kiszámolja a


(10 + 3)! / (10! 3!)


értékét, és ellenőrzi, hogy ugyanaz az eredmény jött-e ki, mint az egyenkénti végigpróbálgatás útján.

2010. jan. 20. 13:47
Hasznos számodra ez a válasz?
 8/16 A kérdező kommentje:
Köszi szépen a tömérdek információt, felfogtam :)
2010. jan. 20. 18:33
 9/16 anonim ***** válasza:

Köszönöm én is a biztatást. Időkoözben lefuttattam az ellenőrző programot az eredeti feladatra is (100-ra és 4-re, nem pedig csak 10-re). Kicsit sokat számolt a gépem, mert 100 millió (nem mind jó) lehetőség közül kellett kiválasztania a jókat.


There are 176851 occurences.

Verification: (100 + 3)! / (100! 3!) = 176851

Verification succeeded.

2010. jan. 20. 19:32
Hasznos számodra ez a válasz?
 10/16 A kérdező kommentje:
Ezt a programot 32 bites futtatható formában fel tudnád tölteni valahova a netre? :)
2010. jan. 20. 22:38
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!