Skip to main content
deleted 61 characters in body
Source Link

Here is a little Scala program for arbitrary n.

def puzzle(n: Int): Double =
  if (n == 2) {
    1.0/4.0
  } else if (n % 2 == 1) {
    (puzzle(n - 1) * (n - 1) * (n - 1) + (n + (n - 1))) / (n * n)
  } else if (n % 2 == 0) {
    (puzzle(n - 1) * (n - 1) * (n - 1)) / (n * n)
  } else {
    ??? // never reached anyway
  }

@main def main: Unit =
  val height = 10
  val percentage = puzzle(height)
  println(s"$percentage")

which prints

> run
[info] running main 
0.45

Here is a little Scala program for arbitrary n.

def puzzle(n: Int): Double =
  if (n == 2) {
    1.0/4.0
  } else if (n % 2 == 1) {
    (puzzle(n - 1) * (n - 1) * (n - 1) + (n + (n - 1))) / (n * n)
  } else if (n % 2 == 0) {
    (puzzle(n - 1) * (n - 1) * (n - 1)) / (n * n)
  } else {
    ??? // never reached anyway
  }

@main def main: Unit =
  val height = 10
  val percentage = puzzle(height)
  println(s"$percentage")

which prints

> run
[info] running main 
0.45

Here is a little Scala program for arbitrary n.

def puzzle(n: Int): Double =
  if (n == 2) {
    1.0/4.0
  } else if (n % 2 == 1) {
    (puzzle(n - 1) * (n - 1) * (n - 1) + (n + (n - 1))) / (n * n)
  } else {
    (puzzle(n - 1) * (n - 1) * (n - 1)) / (n * n)
  }

@main def main: Unit =
  val height = 10
  val percentage = puzzle(height)
  println(s"$percentage")

which prints

> run
[info] running main 
0.45
Source Link

Here is a little Scala program for arbitrary n.

def puzzle(n: Int): Double =
  if (n == 2) {
    1.0/4.0
  } else if (n % 2 == 1) {
    (puzzle(n - 1) * (n - 1) * (n - 1) + (n + (n - 1))) / (n * n)
  } else if (n % 2 == 0) {
    (puzzle(n - 1) * (n - 1) * (n - 1)) / (n * n)
  } else {
    ??? // never reached anyway
  }

@main def main: Unit =
  val height = 10
  val percentage = puzzle(height)
  println(s"$percentage")

which prints

> run
[info] running main 
0.45