Ik heb een probleem.Ik wil een soort kansberekening.Hoe hoger a word hoe meer kans er is dat de uitkomst een 1 is.
Dus A is een waarde die ik krijg.Door hier iets mee te doen ofzo wil ik een 1 of 0 uitkomen.Naar mate dat A stijgt moet de kans stijgen dat ik een 1 uitkom.
ja, omdat je die a op 86 zet, zal dat natuurlijk 86 % geven
maar hij wil ervoor zorgen dat je eerst weining kans hebt, mislukt dat, krijg je een grotere kans, bij jou is dat nie het geval
Als je naar m'n script zou kijken zou je zien dat hij 100.000 keer een random getal maakt, elke keer als dat getal minder dan a is telt hij er een bij op. Hij echoet dus niet gewoon a.
Dat random getal is elke keer iets tussen 1 en 100, als je a groter maakt dan is de kans groter dat het random getal ook echt onder a ligt. Dat was toch ook precies de bedoeling?
Nu zou het ook mogelijk moeten zijn om een 3de mogelijk heid te hebben.Dus een 1,0 of een 2.Zoiets probeerde ik al maar het was nogal omslachtig.
Een vb:
Als A 1 is heb je meer kans dat je 0 uitkomt.
Maar als A 6 is heb je meer kans dat je een 1 uitkomt.
Maar als A nog groter is moet de kans stijgen dat je 1 uitkomt maar ook dat je 2 uitkomt.Dus enkel de kans dat je 0 uitkomt moet dalen.
Ik dacht dus eerst een rand waar je 1 of 0 uitkomt (zoals hierboven en daarna nog een rand waar je terug een 1 of 0 uitkomt.Maar dan zit ik vast want ik heb dan 2x een mogelijkheid op 1 en 0 dus er zou een onderscheid moeten komen tussen die 2 1's & 0's.
Iemand een idee?
En EDIT: A moet ook groter kunnen zijn dan 100.Dus als het max. een getal is tussen 1 - 100 kan het bv niet groter zijn dan 110
Ik heb even een scriptje gemaakt, waarbij de 0 in het begin een voorsprong heeft, maar de 1 en de 2 zichzelf sneller 'vergroten' en daardoor later een grotere kans maken.
Je moet het nog wel even zelf instellen, want bij de 40 heeft 2 alweer bijna 100% kans.. dus de begingetallen en de 'vergrotings' snelheden moet je nog even zelf instellen..
Als je deze code analyseert en je weet dat rangvordering 60 is.
dan is totaalkans 110.Hieronder de resultaten:
200+(1 *110) =310 (waarde 0)
50+(1,25 *110) =187,5(waarde 1)
1+(1,5 *110) =166(waarde 2)
Dus de kans op 0 is toch groter?Maar ik kom toch steeds 2 uit :/.Iemand die mss de oplossing ziet?
200+(1*110) klopt niet.
Je moet bij elk getal tot de 110 de 200 vermenigvuldingen met bijv. 1.05, 1 kan wel, maar dan zal het altijd hetzelfde getal blijven, en gaan 1 en 2 nog sneller omhoog..
Ik heb het 'tabelletje' tussen comments gezet. zodat je zelf nog kon kijken. Maar neem nu deze hieronder (waar de comments dus weg zijn), en verander de getallen zo, dat ze ongeveer kloppen met wat jij in je gedachten hebt.
Het is misschien even lastig om te begrijpen. daarom zal ik het nog een keer proberen uit te leggen.
Je wilt de kans berekenen op 0, 1 en 2. maar hoe hoger het getal wordt hoe meer kans je hebt op 2, en minder kans op 1 en 0.
Daarom ga je 0, 1 en 2 telkens vergoten. De 2 begint met een klein getal, maar heeft een grotere 'groeicapaciteit'. de 0 begint met een groot getal, maar groei niet zo snel. Je laat ze groeien totdat ze het getal van de kans bereiken. Dus in bijv een while of for loop ga je alle getallen na totdat je bij de kans uitkomt. als je bijvoorbeeld het getal 40 hebt. heeft de 2 zichzelf 40 keer laten groeien, de 0 ook. alleen groeit de 0 minder snel en is de 2 misschien al 2x zo groot, en heeft de 2 ook 2x zoveel kans als de 0.
Om het precies naar wens te krijgen moet je dus het getal aanpassen waarmee de getallen groeien, en het begingetal.
Ik wou dit eigenlijk onder mijn vorige bericht typen, maar tijdens het typen viel me internet ineens uit ..
Edit
Misschien is het beter om inplaats van er telkens dus zoveel (1,5,10,20 whatever) procent bij te doen, gewoon een getal erbij optellen. dus bij de 0 1 optellen, bij 1 2 optellen en bij 2 3 optellen. Dit is misschien wat eenvoudiger om dan op een groter getal uit te komen als je snapt wat ik bedoel..