As a minor correction, while the chance of crystals, rubies, and diamonds giving either result is 50%, bouquets have a 75% chance of giving +1 affection and a 25% chance of giving +2 affection. As such the average affection from a bouquet is +1.25, and it would take approximately 80 of them to reach 100% affection using exclusively them.