Har du beräknat hur många poster det blir?
------------------
essentitia preter non sans multiplicandum
18 svar · 503 visningar · startad av Maister
Säg att man lottar fram 20nr av 70 (1-70). Jag skulle vilja generera alla kombinationer som är möjliga, och sedan lagra det i en databas. Hur ska jag gå till väga?
Maister
Har du beräknat hur många poster det blir?
------------------
essentitia preter non sans multiplicandum
Det skulle antagligen gå åt mer hårddiskar för att lagra detta än vad som hittills tillverkats, så det är ett lite väl ambitiöst projekt... :)
Ditt problem går dock säkert att lösa. Ge oss lite information, så klurar vi...
mvh
------------------
/emission
If you see someone without a smiley, give them your colon.
Jag har inte beräknat hur många det blir. Inte något geni när det gäller matte, så jag vet inte hur man ska räkna ut det.
Finns inte så mycket mer information jag kan ge. Finns säkert en formel hur man räknar fram antalet kombinationer, men som sagt, inget matte geni här :)
Om man tar t.e.x. keno, där lottas 20 nr av 70. Jag skulle nu vilja generera alla kombinationer á 20nr från 1-70.
Jag har nyligen börjat klura på det, så jag har inte kommit någon vart än.
Maister
Hittade detta inlägg i ett forum på nätet. Men, jag fattar inte allt av det.
Jag har en fråga som gäller kombinatorik och sannolikhetslära. Det jag söker efter är en generell formel för sannoliketen att vinna på Keno. Så här går spelet till:
I en "Urna" finns N kulor nummrerade 1 till N. Bland dessa väljer jag K st. (K<=N)
OBS, jag skriver bara ned dem, jag tar ej upp dem.
Sedan tas M kulor upp ur "urnan".
Hur stor är chansen att få P nummer rätt (P<=K) av de M upptagna? (Av de jag tidigare skrev ned alltså..)
Min matematiklärare hänvisade mig hit eftersom han inte kunde lösa problemet.
Svar:
Detta är den klassiska urnan i sannolikhetsläran. En urna innehåller N kulor. K av dessa är svarta och N - K är vita. Ur urnan tas utan återläggning M kulor och sannolikheten för att precis P av dessa är svarta efterfrågas.
Låt C(n,k) beteckna antalet sätt att ur en mängd med n element välja k element då hänsyn till ordningen inte tas. Då är
C(n,k) = n över k = n!/(k!(n-k)!).
Antalet möjliga utfall är för urnan m = C(N,M). I de gynnsamma fallen väljs P svarta och M - P vita så antalet gynnsamma fall är g = C(K,P)C(N - K,M - P). Den sökta sannolikheten blir g/m.
Någon kan få ut hur många kombinationer det i följande två fall:
1. N=70, K=M=20
2. N=70, K=10, M=20
Jag ska själv klura på det och se om jag kommer fram till något som verkar stämma :)
Maister
161884603662657876 stycken kombinationer
Det går inte att hantera. Bara att ta fram alla kombinationer tar några år
Vill du ha en funktion som tar fram 20 slumpmässiga tal mellan 1 och 70 så att varje tal bara förekommer 1 gång?
------------------
essentitia preter non sans multiplicandum
Om man tar t.e.x. keno, där lottas 20 nr av 70. Jag skulle nu vilja generera alla kombinationer á 20nr från 1-70.
Tro mig, det vill du inte. Det blev lite bättre av att det var Keno-liknande, eftersom ordningen på numren inte är relevant, men det är illa ändå.
------------------
/emission
If you see someone without a smiley, give them your colon.
LarsG, nja, om det är 161884603662657876 stycken kombinationer, så har jag ingen nytta av funktionen. Men tack ändå.
Det antal kombinationer som du skrev, är det med fall 1 eller 2? Kan du posta hur många det blir med den andra?
Jag har tänkt använda det för Keno. Där jag har en databas med alla kombinationer, och så har jag tänkt dra ifrån de kombinationer som varit, men med tanke på hur många det finns, så är det nog ingen mening att forska vidare i detta.
Tack båda för hjälpen iaf! :)
Maister
Det är fall 1 (Jag gjorde den innan du postade ditt inlägg.)
------------------
essentitia preter non sans multiplicandum
LarsG, kan du visa slumpfunktionen?
Kanske kan hitta någon nytta för den.
Du skulle inte kunna räkna ut med 10 nr istället för 20 och skriva hur många kombinationer det blir?
Maister
[Redigerat av Maister den 10 sep 2001]
Uppställt med normala räknesätt
(70*69*68*67*66*65*64*63*62*61*60*59*58*57*56*55*54*53*52*51)/(20*19*18*17*16*15*14*13*12*11*10*9*8*7*6*5*4*3*2)
------------------
/emission
If you see someone without a smiley, give them your colon.
randomize
dim kenos(69)
dim kudos(19)
dim i,slot
for i = 0 to 69
kenos(i) = i+1
next
for i = 0 to 19
slot = int(rnd*(70-i))
kudos(i) = kenos(slot)
kenos(slot) = kenos(69-i)
next
arrayen kudos kommer att innehålla 20 unika värden mellan 1 och 70
red: Nu kommer dom inte sorterat, men det är inte så svårt att skriva en sorteringsfunktion om behovet finns.
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 10 sep 2001]
tio av 70, oberoende av ordning: 396704524216
------------------
essentitia preter non sans multiplicandum
kör en enkel randomfunktion :e
<%
Function keno(intData)
If isnull(intData) or isempty(intData) or isnumeric(intData) = false Then exit function
Randomize
Do until i = intData
slump = slump & ";" & Int(70 * Rnd)+1
i = i + 1
loop
keno = mid(slump, 2, len(slump))
End Function
%>
sedan kan du ju göra lite vad du vill med den..
exempelvis..
skriva ut den: response.write keno(20)
splitta den till en array: a = split(keno(20), ";")
skriva ut en del utav arrrayen: response.write a(0) & " " & a(1)
Ha så roligt :e
------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=19" TARGET=_blank>Skulle du äta på restaurang, om det var rökförbud?
</A>Varför blir mina isbitar inte lika klara som i reklamen?
Enligt Emissions beräkning så måste även numren dras i den ordningen. Eftersom det är lottning, så spelar ordningsföljden ingen roll (man sorterar efteråt), alltså rätt beräkning borde vara:
1/70 + 2/69 ... osv.
Nu har jag aldrig spelat Keno, men jag tror inte att ordningsföljden spelar roll?
/T
------------------
Jensen Ambassadör, mitt bästa köp! www.jensen.no
Enligt Emissions beräkning så måste även numren dras i den ordningen.
Nej, då finns bara täljaren med i divisionen, och vi får 3,9384937734375979752838689521664 * 10^35 kombinationer, därav min kommentar om att det skulle kräva betydligt mer än alla jordens hårddiskar.
Betydligt mer...
[Redigerat av emission den 11 sep 2001]