#include <stdio.h>
#include <stdlib.h>
#include <time.h>


/* Simulate the first time a random walk returns to 0 */

int generateX()
{
    int u = rand();
    if (u < 0.5 * RAND_MAX) return -1;
    else return 1;
}

int random_walk_0()
{
    int S = generateX(), count = 1;
    while (S != 0)
    {
        S += generateX();
	count++;
    }
    return count;
}

double runif01()
{
    return (1.0 * rand()) / RAND_MAX;
}

int heads2(double p)
{
    char X = runif01() > p;
    char Y = runif01() > p;
    int count = 2;
    while (X || Y) 
    {
        X = Y;
        Y = runif01() > p;
        count++;
    }
    return count;
}


int main()
{
    int i, c;
    srand(time(NULL));
    for (i = 0; i < 10; i++) {
	c = random_walk_0();
	printf("%d\n", c);
    }
    return 0;
}
