Рулетка
Программа оформлена в духе unix way. Для сохранения исходной задачи потребуется порядка 350G. Количество комбинаций считается по формуле сочетаний (комбинаторика).
$ go run roulette.go 36 18 | head
Combinations: 9075135300
000000000000000000111111111111111111
000000000000000001011111111111111111
000000000000000001101111111111111111
000000000000000001110111111111111111
Больше всего времени занимает форматирование и вывод этих миллионов чисел:
$ time go run roulette.go 36 18 > /dev/null
real 209m14.346s
user 185m24.284s
sys 25m32.272s
И первая версия, сделанная для проверки идеи:
$ go run calc.go
000000000000000000111111111111111111
111111111111111111000000000000000000
9075135300