Q16:3本のひもで作る四角形|プログラマ脳を鍛える数学パズル
プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問をやる。今回は、Q16:3本のひもで作る四角形。
Q: 長さが1から500まで変化する同じ長さのひも3本で、正方形を1つ、長方形を2つ作った時、正方形の面積と2つの長方形の面積の和が等しくなる組をカウントする。ただし、同じ比で整数倍のものは1つとしてカウントする。
def count(max:Int) = {
(for {
len <- 1 to max/4
Seq(a,b) <- (1 until len).combinations(2) if a*a + b*b == len*len
} yield {
(a/len.toFloat, b/len.toFloat)
}).toSet.size
}
count(500)
Link
Latest post:
- OpenWhiskのScala sbtプロジェクトのgiter8テンプレートを作った
- OpenWhisk+Scalaで作るServerless Architectureとっかかり
- BluemixにPlayframeworkアプリケーションをデプロイする
- sbt、Giter8を統合するってよ
- Scala 2.12.0でSAM型