Post
Topic
Board Bitcoin Discussion
Re: [Quiz] Answer the Bitcoin question and earn merits! #2
by
AmaGold70
on 22/03/2024, 11:23:52 UTC
Mia Chloe is right. Mining is a Poisson process. One important characteristic of a Poisson process, is that it is memoryless; whether a block was found recently or not, does not give us a clue about the likelihood that another block will be found soon. Whether the last block was mined 2 hours ago or 10 minutes ago, the probability of mining a block within the next 10 minutes remains the same. (Of course, under the assumption that hashrate is constant and blocks are mined every 10 minutes on average)

As displayed in Wikipedia, the formula is: P{N = n} = Λn * e / n!, where:
- n: the number of blocks to find within 10 minutes
- Λ: the number of blocks you would expect to find in 10 minutes.

For n=3, Λ=1, we get 0.0613132, or 6.13%.

The C++ code that implements it is the following:
Code:
#include <iostream>
#include <cmath>
using namespace std;

// constant number 'e'
const double Euler = std::exp(1.0);

// return x^y
int power(int x, int y){
    if(y == 0 && x != 0) return 1;
    int i, z = x;  
    for(i = 0; i < y; i++)
        z *= z;

    return z;
}

// factorial of integer x
int fact(int x){
    if(x == 0) return 1;
    
    int i, factorial = 1;
    for(i = 1; i <= x; i++)
        factorial *= i;

    return factorial;
}

int main(){
    // P{N = n} = Λ^n * e^-Λ / n!
    // n: number of blocks to find within given time frame
    // Λ or lambda: number of blocks you would expect to find in 10 minutes

    int n = 3, lambda = 1;
    double P = power(lambda, n) * pow(Euler, -lambda) / fact(n);
    
    cout << P << endl;
}

Just compile with "g++ -o mining mining.cpp" and run with "./mining".

See how abruptly improbable it becomes as you increase n.
Code:
For n=3, Λ=1, P=0.0613132
For n=4, Λ=1, P=0.01532830
For n=5, Λ=1, P=0.00306566
For n=6, Λ=1, P=0.000510944
For n=7, Λ=1, P=0.00000729
Hahaha, I wasn't expecting to win against top members in the forum but I thought I was pretty close even though my presentation wasn't good enough. Thumbs up @Mia Chloe you deserve the win. @BlackHatcoiner hoping to participate again in your next contest.