Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import "fmt"
- func probRed(red, black int) float64 {
- rf := float64(red)
- bf := float64(black)
- return rf / (rf + bf)
- }
- func answerA() (int, int, int) {
- for r := 2; true; r++ {
- for b := 0; b < r; b++ {
- if probRed(r, b)*probRed(r-1, b) == 0.5 {
- return r + b, r, b
- }
- }
- }
- return -1, -1, -1
- }
- func answerB() (int, int, int) {
- for r := 2; true; r++ {
- for b := 2; b < r; b += 2 {
- if probRed(r, b)*probRed(r-1, b) == 0.5 {
- return r + b, r, b
- }
- }
- }
- return -1, -1, -1
- }
- func main() {
- aTotal, aRed, aBlack := answerA()
- fmt.Printf("Answer A: %d (%d red, %d black)\n", aTotal, aRed, aBlack)
- bTotal, bRed, bBlack := answerB()
- fmt.Printf("Answer B: %d (%d red, %d black)\n", bTotal, bRed, bBlack)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement