Side 3 av 6

Re: Programmering - maraton

Lagt inn: 06/08-2022 08:45
av Mattebruker
Gustav presenterte eit sofistikert program som kjem ut med rett svar( 0.5731441 ). Må vedgå at eg forstod svært lite av denne løysinga.
Har sjølv laga eit program som tel opp antal kombinasjonar med sum = 6, sum = 7,................................., sum = 35 og sum = 36 for dei to terninggruppene.
Eksempel: Terningkast(6 objekt) har 4221 kombinasjonar med sum auge = 20 , medan pyramidekast( 9 objekt ) har 23607 kombinasjonar som gir same sum ( 20 ). Sjå vedlagt kode.
Kan nokon av dykk , Aleks eller Gustav , kort forklare vegen vidare for å kome i mål ?

Kode: Velg alt

from pylab import *
tsum = zeros(37)
psum = zeros(37)
     #
     # Terningkast(6 objekt ) - tel opp antal utfall med gitt sum. 
     #
for i in range(1,7):
  for j in range(1,7):
    for k in range(1,7):
      for l in range(1,7):
        for m in range(1,7):
          for n in range(1,7):
            sum = i + j + k + l + m + n
            tsum[sum] = tsum[sum] + 1
print(tsum[20])
#
#        Pyramidekast(9 objekt) - tel opp antal utfall med gitt sum.
#
for i in range(1,5):  
  for j in range(1,5):
    for k in range(1,5):
      for l in range(1,5):
        for m in range(1,5):
          for n in range(1,5):
            for p in range(1,5):
              for q in range(1,5):
                for r in range(1,5):
                  sum = i + j + k + l + m + n + p + q + r
                  psum[sum] = psum[sum] + 1
print(psum[20])          

Re: Programmering - maraton

Lagt inn: 06/08-2022 14:10
av Aleks855
Det ser ut som du har riktige tabeller av utfall.

Nå gjenstår selve $\frac{\text {gunstige}}{\text {mulige}}$. Så problemet er redusert til; hvordan skal du telle opp antall resultater der pyramidene slår kubene?

Re: Programmering - maraton

Lagt inn: 06/08-2022 15:55
av Mattebruker
Takk for tilbakemelding, Aleks. Kom i mål til slutt , sjølv om mi løysing er mindre "raffinert" enn den Gustav bar til torgs.
Uansett; ei utfordrande, interessant og lærerik oppgave.

Kode: Velg alt

from pylab import *
tsum = zeros(37)
psum = zeros(37)
#
# Kubekast( 6 objekt) - tel opp antal utfall med gitt sum
#
for i in range(1,7):
  for j in range(1,7):
    for k in range(1,7):
      for l in range(1,7):
        for m in range(1,7):
          for n in range(1,7):
            sum = i + j + k + l + m + n
            tsum[sum] = tsum[sum] + 1
#
# Pyramidekast( 9 objekt) - tel opp antal utfall med gitt sum
# 
for i in range(1,5):
  for j in range(1,5):
    for k in range(1,5):
      for l in range(1,5):
        for m in range(1,5):
          for n in range(1,5):
            for p in range(1,5):
              for q in range(1,5):
                for r in range(1,5):
                  sum = i + j + k + l + m + n + p + q + r
                  psum[sum] = psum[sum] + 1
gunstige = 0
for i in range(9,37):
  sum = 0
  for j in range(6,i):
    sum = sum + tsum[j]
  gunstige = gunstige + psum[i]*sum 
mulige = (4**9)*(6**6)
sannsyn = gunstige/mulige
print("Sannsyn = ", round(sannsyn*10**7) /10**7)

Re: Programmering - maraton

Lagt inn: 06/08-2022 18:10
av Aleks855
Kjempebra!

Den oppgaven var kanskje litt mer kompleks enn de øvrige oppgavene, men det er vel forventet at det blir litt variasjon.

Noen som har en oppfølger?

Re: Programmering - maraton

Lagt inn: 06/08-2022 20:35
av Gustav
Kan jo ta denne da:

70 fargede baller er plassert i en urne, 10 av hver av de 7 regnbuefargene. Hva er det forventede antall forskjellige farger hvis man tilfeldig trekker 20 baller?

Gi svaret avrundet til 9 desimaler.

Re: Programmering - maraton

Lagt inn: 07/08-2022 19:12
av Mattebruker
Spørsmål til Gustav: Finnast der ein metode for å finne talet på heiltallige løysingar til f.eks. likninga

a + b + c + d + e + f + g = 20 , {a , b , c , d , e , f , g } [tex]\subset[/tex] N ?

Re: Programmering - maraton

Lagt inn: 07/08-2022 22:49
av Gustav
Mattebruker skrev: 07/08-2022 19:12 Spørsmål til Gustav: Finnast der ein metode for å finne talet på heiltallige løysingar til f.eks. likninga

a + b + c + d + e + f + g = 20 , {a , b , c , d , e , f , g } [tex]\subset[/tex] N ?
Ja, sjekk ut denne linken https://en.wikipedia.org/wiki/Stars_and ... inatorics)

Re: Programmering - maraton

Lagt inn: 08/08-2022 09:49
av Mattebruker
Takk for tips. Nyttig info ! Dersom eg har forstått formelen rett, har likninga

x[tex]_{1}[/tex] + x[tex]_{2}[/tex] + x[tex]_{3}[/tex] + x[tex]_{4}[/tex] + x[tex]_{5}[/tex] + x[tex]_{6}[/tex] + x[tex]_{7}[/tex] = 20

[tex]\binom{20 - 1}{7 - 1}[/tex] = [tex]\binom{19}{6}[/tex] = 27132 positive , heiltallige løysingar , der kvar av x-ane representerer ein bestemt farge i "regnbogen".
Da står det att å "luke ut" alle løysingar der ein ( og berre ein ) av x-ane er større enn 10. I skrivande stund ser eg ikkje heilt for meg korleis løyse dette
problemet. Men når denne hindringa er rydda av vegen, burde det vere ei overkommeleg oppgave å finne den forventningsverdien ( E(X ) ) du spør etter.

Re: Programmering - maraton

Lagt inn: 08/08-2022 13:21
av Mattebruker
Enda opp med dette svaret: E( X ) = 5.525443787. Kva seier dommaren ?

Kode: Velg alt

from pylab import *
antal = zeros(8)
#
#     Finne antal utfall med 7 fargar
#
 
for i in range(1,11):
  for j in range(1,11):
    for k in range(1,11):
      for l in range(1,11):
        for m in range(1,11):
          for n in range(1,11):
            for p in range(1,11):
              sum = i + j + k + l + m + n + p
              if sum == 20:
               antal[7] = antal[7] +1
print(antal[7])                
# Finne antal utfall med 6 fargar
#
for i in range(1,11):
  for j in range(1,11):
   for k in range(1,11):
     for l in range(1,11):
      for m in range(1,11):
        for n in range(1,11):
          sum = i + j + k + l + m + n 
          if sum == 20:
            antal[6] = antal[6] + 1
antal[6] = antal[6]*7
#
#    Finne antal utfall med 5 fargar
#
for i in range(1,11):
  for j in range(1,11):
    for k in range(1,11):
      for l in range(1,11):
        for m in range(1,11):
          sum = i + j + k + l + m
          if sum == 20:
            antal[5] = antal[5] + 1
antal[5] = antal[5]*21 # 7 "over" 5 = 21
#
#   Finne antal utfall med 4 fargar
#  
for i in range(1,11):
  for j in range(1,11):
    for k in range(1,11):
      for l in range(1,11):
        sum = i + j + k + l
        if sum ==20:
          antal[4] = antal[4] + 1
antal[4] = antal[4]*35
#
#  Finne antal utfall med 3 fargar
#
for i in range(1,11):
  for j in range(1,11):
    for k in range(1,11):
      sum = i + j + k
      if sum == 20:
        antal[3] = antal[3] + 1
antal[3] = antal[3]*35
#
antal[2] = 1 * 21 # 7 "over 2" = 21
sumantal = 0; sumvekt = 0
for i in range(2,8):
  sumantal = sumantal + antal[i]
  sumvekt = sumvekt + i*antal[i]
Expec = sumvekt/sumantal
print("Forventa tal fargar: ", round(Expec*10**9)/10**9)

Re: Programmering - maraton

Lagt inn: 08/08-2022 16:40
av Gustav
Dessverre ikke korrekt :( Fasiten sier et noe større tall...

Re: Programmering - maraton

Lagt inn: 08/08-2022 18:20
av Mattebruker
Hallo ! Har skrive heile koden på nytt og får same svaret ( 5.525443787)
Bruk av alle sju fargane har 26544 ulike utfall. Kan du kontrollere at dette talet stemmer ?

Re: Programmering - maraton

Lagt inn: 08/08-2022 20:43
av Gustav
Mattebruker skrev: 08/08-2022 18:20 Hallo ! Har skrive heile koden på nytt og får same svaret ( 5.525443787)
Bruk av alle sju fargane har 26544 ulike utfall. Kan du kontrollere at dette talet stemmer ?
Du skrev vel selv 27132 i forrige innlegg? Som er riktig

Re: Programmering - maraton

Lagt inn: 08/08-2022 21:01
av Mattebruker
Viser til siste innlegget ditt , Gustav.
Du oppgir 27132 utfall med sju fargar. Men då tek vi med også dei utfalla der ein av x-ane er større enn10, eks. 11 + 2 +2 +2 + 1 + 1 + 1.
Dette kjem i konflikt med premissane i oppgava: Kvar av dei sju fargane er representert med 10 kuler.

Re: Programmering - maraton

Lagt inn: 08/08-2022 22:20
av Gustav
Ok, jeg misforsto hva du mente.

Du har vel ikke inkludert utfall der man plukker f.eks 10 røde og 10 gule, og 0 andre farger her?

Re: Programmering - maraton

Lagt inn: 08/08-2022 22:30
av Aleks855
Jeg har forlatt matematikken i protest og frustrasjon. Men er jeg i nærheten?

Bilde