Kotlinのカスタムプロパティアクセスを活用して、メモ化(Memoization)を実装する方法について説明します。メモ化は、同じ入力に対して同じ計算を何度も行わずに、計算結果を一度計算したらキャッシュに保存して再利用する技術です。これにより、プログラムのパフォーマンスを向上させることができます。
以下は、Kotlinでのメモ化を実現するためのサンプルコードです。
class MemoizationExample {
private val cache = mutableMapOf<Int, Int>()
fun calculateFibonacci(n: Int): Int {
return if (n <= 1) {
n
} else {
cache.getOrPut(n) {
calculateFibonacci(n - 1) + calculateFibonacci(n - 2)
}
}
}
}
fun main() {
val memoizationExample = MemoizationExample()
println(memoizationExample.calculateFibonacci(10)) // フィボナッチ数列の10番目を計算
}
この例では、calculateFibonacci
メソッドをメモ化しています。計算結果はcache
というMutableMapに保存され、同じ引数が再び渡された場合にはキャッシュから取得されます。これにより、フィボナッチ数列を計算する際に同じ計算を繰り返すことを避け、高速な計算を実現できます。
Kotlinのカスタムプロパティアクセスを活用することで、このようなメモ化の仕組みを簡潔に実装できます。メモ化は再帰的な計算や重い計算を行う場合に特に有用です。