Artúr király / 1.18

czylabsonasa
AD 2023

leírás

nyit/zár

Artúr király kerekasztalánál 12 lovag ül. Mindegyikük hadilábon áll a két szomszédjával. Hányféleképpen választhatunk ki közülök 5 lovagot úgy, hogy ne legyenek közöttük ellenségek?

megoldás

nyit/zár

Használjuk a Nulla-egy feladatot!

  1. az 1-es lovag kiválasztva: $\binom{5+1}{4} = 15$

  2. az 1-es lovag kimarad: $\binom{6+1}{5} = 21$

  3. összesen 15 + 21 = 36

szimuláció

nyit/zár
  1. Az összes eset: $\binom{12}{5}=792$

  2. A valség: $\frac{36}{792} = 0.0455$

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

# L, l és p_art a megoldásnak megfelelő

urna = 1:L   # ebből húzunk
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, l, replace = false, ordered = true)   # a húzás, egy eset
  K[n] = (acase[1]!=1 || acase[end]!=L) && (1  diff(acase))
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_art,p_art], label = "elmélet")   # az elméleti valség
plot!(title = "Artúr király\n abszolút eltérés a végén: $(round(abs(p_art-K[end]), digits = 6))")