using randomness to solve non-random problems: 50% complete, homework in progress