[HN Gopher] Monte Carlo methods
___________________________________________________________________
Monte Carlo methods
Author : redbell
Score : 210 points
Date : 2023-05-13 12:15 UTC (1 days ago)
(HTM) web link (easylang.dev)
(TXT) w3m dump (easylang.dev)
| tonetheman wrote:
| [dead]
| johnfarrelldev wrote:
| I haven't completed or deployed it yet but I wrote a C# API to
| calculate your chance of winning a hand of poker based on all
| known cards at the table.
|
| All unknown cards are randomly assigned and it just loops a
| bunch, reasonably easy to implement and actually is reasonably
| fast.
|
| https://github.com/JohnFarrellDev/PokerMonteCarloAPI/
|
| With the amount of possible outcomes Bayesian statistics just
| didn't seem reasonable to implement.
|
| Goes without saying this tool is still fairly basic, it shouldn't
| be used to inform how much to bet or when to fold as it doesn't
| take into account information such as how much your opponents are
| betting.
| gmi01 wrote:
| I wrote a Haskell version that includes two components:
|
| A very efficient function to rank a set of Texas Hold'em hands.
|
| A Monte Carlo situation that gives you the probability of
| winning each hand from any known amount of information.
|
| It is available here: https://github.com/ghais/poker
| bionsystem wrote:
| Not sure if you guys are aware but there are solvers existing
| (most of which are proprietary) that actually give optimal
| strategies with every possible hands given a betting pattern.
| They are used extensively as study tools by professional
| players.
| SnowHill9902 wrote:
| Can you link to some projects? Ideally also Haskell or also
| functional?
| bionsystem wrote:
| I use GTO+ which is proprietary.
|
| I just tried this one which works like a charm (just run
| the exe from the zip in github releases ; even comes pre-
| loaded with a wide amount of preflop ranges, which seem
| to come from a previous solve) :
| https://github.com/bupticybee/TexasSolver
|
| Searching with "poker solver haskell" only seem to show
| very immature projects.
| IngoBlechschmid wrote:
| Very nicely polished! Thank you for sharing!
|
| For the purposes of teaching Python, I once created something
| similar---but without the explanations:
|
| https://www.speicherleck.de/iblech/zufall-im-browser/index.e...
| opensourceac wrote:
| Just finished embedding a Python component on my site -
| https://www.actuarialopensource.org/book/welcome.
|
| Uses react-py. Some effort required to implement tabs and manage
| lifecycle of Pyodide for separate editors.
| chkas wrote:
| Hi. Author here. It is shown here on different in the browser
| executable and editable programs with Monte Carlo methods that
| one cannot win at roulette if one plays many times. Many know
| this, but many do not, and therefore this can be helpful. After
| all, there are more than a few who lose their financial existence
| in the casino.
| iamcreasy wrote:
| Thank you for writing. Very clearly explained.
|
| Can you explain how do you derive this?
|
| print 10 * 10000 * (18 / 37 - 19 / 37)
| alexeldeib wrote:
| Per round expected value of +/- 10, times 10k rounds, 18/37
| lose probability 19/37 win probability.
| Jtsummers wrote:
| That's an expected value calculation.
|
| It breaks down into three parts:
|
| 1. The wager per round ($10). This is, in the game being
| simulated, the amount won or lost based on the game's
| outcome.
|
| 2. The number of rounds (10000).
|
| 3. The probability of winning minus probability of losing.
|
| Forgetting the number of rounds for a moment, the way to
| calculate the expected value of a single wager like this is:
| E[X] = x1*p1 + x2*p2 + ... + xn*pn
|
| Where each `xN` is the value (amount won or amount lost since
| we're talking about wagers) of an event and `pN` is the
| probability of that event. In this case there is an 18/37
| chance of winning and 19/37 chance of losing. The value of
| winning is +10 and the cost of losing is -10. So the expected
| value of a $10 wager ends up being: 10 *
| 18/37 - 10 * 19/37
|
| Multiply that by 10,000 for the number of rounds played and
| you get the expected value of a series of games.
| sokoloff wrote:
| Note that's the calculation for a European (single green 0)
| wheel, not the American (green 0 and green 00) wheel, in
| which you'd replace with +18/38 (or 9/19) and -20/38 (or
| 10/19).
|
| Yes, the American version is twice as bad for the player,
| but it doesn't matter; people are still plenty eager to
| play it...
| [deleted]
| afterburner wrote:
| On the following blackjack page (link at the bottom of the page),
| the phrase "Buy up to 17" can be misleading.
|
| The author means "if your total is 17 or less, get another card".
| But it can easily be interpreted as "keep asking for more cards
| until you have 17 or more"; almost the same, but different.
| winddude wrote:
| Fun! and just as "21" taught us card counting is always the
| answer.
| abecedarius wrote:
| I love how lightweight and interactive this is.
|
| Related: Norvig's runnable intro probability notebooks at
| https://github.com/norvig/pytudes#pytudes-index-of-jupyter-i...
| uoaei wrote:
| A closely related idea is _Approximate Bayesian Computation_ :
| https://www.sumsar.net/blog/2014/10/tiny-data-and-the-socks-...
| listenallyall wrote:
| Discussed multiple times before:
|
| https://news.ycombinator.com/item?id=20359100
| https://news.ycombinator.com/item?id=29217539
| https://news.ycombinator.com/item?id=35927627
| tommica wrote:
| This is so cool - simple and educative!
| giantg2 wrote:
| Very cool. At first I thought this would be about project
| management using Monte Carlo for target dates.
| kenniskrag wrote:
| What's about online poker. Is there also a bank advantage if you
| play perfectly? Is it allowed?
| zer0tonin wrote:
| https://en.wikipedia.org/wiki/Rake_(poker)
| travisjungroth wrote:
| Poker is quite different. In roulette, the house advantage is
| probabilistic. As the linked page shows, that advantage is
| overwhelmingly likely to materialize, and rather quickly at
| that. But the probability that you play a million rounds of
| roulette and end up ahead isn't exactly zero, just such a
| ridiculously small number you might as well call it zero for
| real life purposes.
|
| Casinos make money on poker play differently, and in a few
| ways. The simplest is "rake". They take a fixed percentage of
| every pot. This is different because it's not probabilistic.
| The casino isn't gambling its own money. It's just a tax.
|
| Money only comes in from players. So the EV of all players is
| negative, because a little is flowing out to the casino every
| hand. The chance players as a whole end up ahead isn't near
| zero, it is zero.
|
| If everyone was playing theoretically perfect poker every hand,
| all individual players EV are also negative. But, no one is
| playing perfect all the time. So you can get ahead because
| you're not beating the odds. You're beating other players.
| adancalderon wrote:
| We can do math integration and solve radiation transport problems
| with Monte Carlo.
| webdoodle wrote:
| Yep, several particle accelerator studies use it to model
| neutrino's.
| acidburnNSA wrote:
| It was actually invented for this.
|
| Open source radiation transport Monte Carlo code here if you'd
| like to play around:
|
| https://github.com/openmc-dev/openmc
| eodhosb wrote:
| and ENIAC's first programs were Monte Carlo simulations.
| CyberDildonics wrote:
| Any integral you can sample can be solved with monte carlo
| methods. This doesn't really have anything to do with the link.
| spookystats wrote:
| Actually it does, because MC integration works due to the law
| of large numbers - exactly what is presented in the article.
| CyberDildonics wrote:
| Right, that's what is in the article, but just naming a
| random arbitrary use doesn't make any sense.
___________________________________________________________________
(page generated 2023-05-14 23:00 UTC)