So, just for fun I have been developing some python code to analyse decks and get (useful?) numbers out of them.
I started by focusing on R&D access. In particular I wanted to check how the average number of R&D accesses required to score 7 points changes depending on the corp archetype we are playing against. To this purpose I wrote some code that essentially does a Monte Carlo experiment and returns the frequencies of the required number of accesses to win a game. The procedure is as follows:
- take a deck, shuffle and remove the top 6 cards (5 cards of starting hand + 1 mandatory draw)
- look at the remaining cards and count how many cards I have to see to arrive at 7 agenda points, record that number. In term of games, this would correspond to a strict R&D lock where the runner runs and see one card every turn. If it is an Agenda he//she scores it and runs again. If it is not an Agenda, the corp draws it.
Repeating the above points 10**5 times (or playing 10**5 games) results in an array containing 10**5 numbers each quantifying how many accesses were necessary to 'win' a game. I then proceeding essentially by binning these numbers to produce a normalised histogram (area=1, width of each bin=1), i.e. counting how many times I had to run 1, 2, 3, ....n times in order to win the game.
The histogram therefore shows you the (probability) distribution of the number of R&D accesses required to win a game against a particular corp: the height of the n-th bar corresponds to the fraction of games that have been won on the n-th access. The number of games won, on average, with a number of accesses n* or less is given by the integral (i.e. the area) under the histogram up to n*. As the the bins (each bar) is large one, the area simply equals the sum of the heights of the bars up to the one of n* included.
This running sum or, if you prefer, the cumulative distribution function, is also plotted in the form of cumulative histogram against the number of accesses performed. From the cumulative distribution function it is easy to read off the number of accesses necessary to win, always on average, a certain percentage of the games: just pick the y value matching the percentage you are interested in (0.25, 0.5 and 0.75 are shown with dashed lines) and read off the corresponding number of accesses on the x axis.
Enough of talking, now I'll show some results for popular decks which I took from NetrunnerDB.
The first is @Cerberus Crusade mk2
then I picked the NEH which was 1st seed at worlds after the Swiss
and some popular Government Takeover deck.
I also analysed a blast form the past: @PeekaySK's CI deck
Now, all of this is still quite rough, in terms of game the corp is simply drawing one card per turn. However knowing more or less how many accesses you have to have gives you an idea of how many credits you need to generate to support the corresponding runs.
If you are curios to see the histogram for some specific corp deck just let me know.