Tigris / 1.17

czylabsonasa
AD 2023

leírás

nyit/zár

Egy állatszelidítő 5 oroszlánt és 4 tigrist akar kivezetni a porondra. Két tigris nem jöhet egymás után, mert összevesznek. Hányféleképpen állíthatja sorba az állatokat

  • ha nem tudja megkülönböztetni őket egymástól?

  • ha meg tudja különböztetni őket egymástól?

megoldás

nyit/zár
  • nem tudja megkülönböztetni: A Nulla-egy feladat alapján: $\binom{5+1}{4} = 15$

  • meg tudja különböztetni: az előző rész alapján $\binom{5+1}{4}\cdot 5!\cdot 4! = 43200$

szimuláció

nyit/zár

Csak a "nem tudja megkülönböztetni" eset. Az összes (korlátozás nélküli eset) egy sima ismétléses permutáció: $\binom{5+4}{4} = 126$, amiből $P(nincs\ szomszédos\ tigris) = \frac{15}{126} = 0.119$

using StatsBase:sample
import Random
Random.seed!(777)   # reprodukálhatóság

# Ti, Or és p_nem a feladatnak megfelelő értékű

urna = vcat(fill('T',Ti), fill('O',Or))   # ebből húzunk (permutáció, mert mindet kihúzzuk)
N = 100000   # ennyi esetben húzunk
K = fill(0, N)   # ebben vannak az egyes húzások eredményei
for n in 1:N
  acase = sample(urna, Ti+Or, replace = false)   # a húzás, egy eset
  p = '_'   # az előző a sorban
  for c in acase
    if c == 'T' && p == 'T'
      p = '0'   # ha az előző is 'T'igris akkor ...
      break
    end
    p = c
  end
  K[n] = (p != '0')
end
K = cumsum(K)./(1:N)   # az addigi összes jó eset osztva az az összes esettel

I = vcat(2 .^(4:Int(floor(log2(N)))), N)   # csak "néhány" indexre rajzolunk (N>>2^4!)
scatter(I, K[I], label = "szimuláció")   # pöttyök
# plot!(I, K[I], label = nothing)   # vonalak
plot!([1,N],[p_nem,p_nem], label = "elmélet")   # az elméleti valség
plot!(title = "Tigris\n abszolút eltérés a végén: $(round(abs(p_nem-K[end]), digits = 6))")