How would you solve a probability question related to coin flips?
Implement the calculation for independent coin flips where each flip may have a different probability of landing heads. Return the probability of obtaining at least k heads.
Input/output contract: Define probability_at_least_k_heads(probabilities, k), where probabilities is a list of head probabilities and k is an integer. Return a floating-point probability between 0.0 and 1.0.
def probability_at_least_k_heads(probabilities, k):