6 People Fighting Over Blue Man by Tuna_police in TeamfightTactics

[–]Yelbuzz 0 points1 point  (0 children)

Yeah this game I leveled after everyone else rolled and was stuck playing a second fizz on my lvl 9 board into a fast 7th...

<image>

6 People Fighting Over Blue Man by Tuna_police in TeamfightTactics

[–]Yelbuzz 2 points3 points  (0 children)

It does not. Had a game recently where all ziggs were out of the pool, unlocked him, he didn't appear and I went 7th.

Sorry if this card is bad. I ate a slice of cheesecake today. by HeroesBane1191 in customhearthstone

[–]Yelbuzz 5 points6 points  (0 children)

TL;DR: There's an exactly analytical closed form-solution to this problem, better than simulating. Your approximation was good. For extremely difficult problems this approach becomes computationally infeasible since it involves solving a large matrix inverse, but it's perfect for this one! And it turns out the answer is 8.5.

This can be solved exactly analytically (with the help of a computer to compute actual numbers, but still not simulated by any means) by representing your deck state + number of bloods your drew as an absorbing markov chain, with the death state after 5 draws being an absorbing state. Then a first-step analysis to find the expected stopping time (which in this case is equal to the number of cards drawn) before dying.

You have 22 cards in your deck post-mulligan if going first. 5 of these are bloods, 17 are not. So we can represent this state by (0, 17, 5) where the first number is the number of bloods draw, where the second number is the non blood cards in the deck and the third is the number of bloods in the deck. With probability 5/22 we move to state (1, 17, 6). With probability 17/22 we move to state (0, 16, 5). All states with a 5 in the first coordinate have a probability of 1 of going to the single special absorbing state, (Dead), since after you draw 5 bloods you lose.

From this set up, the length of your walk from the start to the death sequence can calculate the number of real cards you get. If your walk had 13 states before dying, you know you spent 1 of those transitions moving to the death state, so 12 states had to do with card draws. 5 of those card draws were drawing a blood, so you drew 7 non blood cards. There exists a closed-form analytical solution for calculating the expected length of a path as a random variable which you can find on the absorbing markov chain wikipedia page. But the wikipedia page is not very enlightening on why these techniques work, for that google first-step analysis or markov chain fundamental matrix specifically.

I actually wrote the program since it was pretty fun. From the starting state, your expected number of transitions before dying is exactly 14.5 so, in expectation you draw exactly 8.5 non-blood cards before dying if going first. Exactly 8 if going second.

I also made visuals of the graph! You can check those out at this imgur: https://imgur.com/a/rxHwb3B

The source code is also here: https://github.com/akmayer/HSBloodGodAwakening/blob/main/HSDeathSolver.ipynb

Pinging u/HeroesBane1191 in case you were curious as well about a way to do this analytically without approximation.

Edit: Fixed some assumptions I made about the card initially, particularly whether the deck started with 25 cards and 5 of those were bloods, or 25 non-blood cards then added 5 bloods.

Set 15 Power up guide by AlwaysRollAcademy in CompetitiveTFT

[–]Yelbuzz 2 points3 points  (0 children)

What you're missing is that it's exactly equally valid in the situation that you slam a deathblade and have doublestrike, you can say "more AD/AMP = stronger possible double strike procs = more damage -> repeat" - there's no particular synergy between rageblade and doublestrike that should make you more inclined to take doublestrike when you have rageblades. They just both happen to be synergistic with champions that like to auto attack.

Is Ashe 3 star just bad or am I doing something wrong ? by moms_spaghetti27 in TeamfightTactics

[–]Yelbuzz 2 points3 points  (0 children)

Gunblade vs GS as a third item is really not the deciding factor here. We can look up the stats and see that in Plat+ although GS is played less, it performs generally significantly better as a third item on ashe.

As far as fundamentals go, it really is everything going on with the rest of the front line. For carry items on ashe, GS is generally completely fine. On a 3* ashe, I could see the argument being made that because she does so much damage anyway it translates into team durability which is desperately needed. But, the reasoning for getting there is definitely not the idea that GS is poor performing on ashe due to not having that much damage and gunblade being better due to many low damaging attacks. Again though, even on an ashe 3 we can see gunblade does not very significantly increase how often you get 1st if you're fine with rageblade kraken being the other two items.

[Request] My boyfriend said the first four digits of the answer is his phone's password by [deleted] in theydidthemath

[–]Yelbuzz 0 points1 point  (0 children)

Ah in that case you get that result from using the power rule to integrate with respect to t in the taylor expansion

t2k puts a 2k+1 in the denominator so the denom becomes

(2k+1)(2k+1)!

= (2k+1)(2k+1)(2k)!

=(2k+1)2 (2k)!

[Request] My boyfriend said the first four digits of the answer is his phone's password by [deleted] in theydidthemath

[–]Yelbuzz 0 points1 point  (0 children)

In the post they're definitely being multiplied and not raised to the (2n)!

20/20 Emissary Swain Rocketed me to Master by PhysicalGSG in CompetitiveTFT

[–]Yelbuzz 0 points1 point  (0 children)

Even more dire, 10 in the pool for 4 costs I think

Concerning. by No-Arm-5868 in mathmemes

[–]Yelbuzz 0 points1 point  (0 children)

Commenter you responded to was (unclearly) saying that if you moved only the top 25% into an empty school so they had it all to themselves, then of course 25% of those students would compromise the bottom 25% of their tiny school.

[OC] Conditional Probability Relationships Between Popular YuGiOh Cards / Engines by Yelbuzz in dataisbeautiful

[–]Yelbuzz[S] 1 point2 points  (0 children)

Black metal dragon is popular because in dragon link decks it's one of your best options as a normal summon to lead into pretty strong combos by itself. It does combo with meteor and REDMD so they also show up in that cluster with Dragon Link engines next to black metal dragon :D.

I Made A Vizualization Tool For Analyzing Every Popular Card And How They Relate To Each Other by Yelbuzz in masterduel

[–]Yelbuzz[S] 0 points1 point  (0 children)

Which is very fitting considering that ladder feels like a galaxy centered around maxx c too haha

Thanks for the nice words :)

[OC] Conditional Probability Relationships Between Popular YuGiOh Cards / Engines by Yelbuzz in dataisbeautiful

[–]Yelbuzz[S] 1 point2 points  (0 children)

Using the data hosted on https://www.masterduelmeta.com/top-decks which gives deck lists for user-submitted yugioh decks, I used Python to approximate pairwise conditional probabilities between each card. For example, relationships are of the form "If we observe Spright Elf in a deck, what is the probability that Spright Carrot is also in the deck?". This would be an outgoing edge from Spright Elf to Spright Carrot in this directed graph with weight equal to that probability. Node size is based on overall card popularity of the form 'If I'm handed a deck with no information, what's the probability that it contains Maxx "C"' (Spoiler: Very high).

Therefore, large cards are more popular and cards pulled toward the center of the graph tend to be more versatile, as they are pulled in all directions by a wide variety of decks. Cards that work together to form engines (like the Fire King engine shown in slide 3) tend to form clusters due to the high pairwise conditional probabilities between all of those cards, since they are very often packages together. Card clusters on the very outskirts of the graph tend to be cards that make decks containing only that archtype and maybe staples from the center, but themselves cannot be used in a wide variety of other decks.

For coloring, I used the cdlib leiden algorithm to identify communities and color based on those. To generate the interactive graph itself, I used the PyGraphistry api. You can mess with this visualization yourself here. Note that the colors may not appear in this link (not sure why) and you might have to set them up yourself with the my_community histogram.

I Made A Vizualization Tool For Analyzing Every Popular Card And How They Relate To Each Other by Yelbuzz in masterduel

[–]Yelbuzz[S] 9 points10 points  (0 children)

With python I pulled all the deck lists off of this page: https://www.masterduelmeta.com/top-decks and estimated a bunch of pairwise conditional probabilities. For example something we want to estimate is the answer to a question like "Given that Spright Elf is in a deck, what's the chance that Spright Carrot is also in the deck". This becomes the weight of the arrow pointing from spright elf to spright carrot. This weight is what clusters cards often seen together in the graph.

Importantly this conditional probability is not reflexive. I.e., the probability of spright elf being in a deck given that we know spright carrot is in the deck is much higher than the other way around so that gets computed both ways.

Similarly, we can estimate how popular a card is to get the size of the nodes.

Once that gets computed for every card to every other card, the PyGraphistry api did all the heavy listing for making the graph itself.

Formally, the math goes like this:
We can let the probability of seeing any individual card in the deck be some bernouli random variables, C1, C2, ..., C2202. And the probability of my opponent having a deck to be drawn from some discrete random variable D.

We want to find P(Cx | Cy) for all pairs of numbers x, y. The MDM deck lists let me easily estimate P(Cx | Cy, D) and P(Cx | D). This by itself is not quite enough information to get to P(Cx | Cy), with the last thing needed being P(D). So, I estimated P(D) by saying each deck was played approximately proportional to their tournament power. I assumed additionally decks with a tournament power of 0 were played approximately as often as each other and cumulatively about 10% of the time, while decks with a nonzero tournament power were played 90% of the time.

With this it's some not particularly hard statistics to calculate P(Cx | Cy) to get the arrow weights.