Skip to content

Instantly share code, notes, and snippets.

@m4kvn
Created May 22, 2017 15:20
Show Gist options
  • Save m4kvn/0f3739c7f20b332ea51bba81df12b8a9 to your computer and use it in GitHub Desktop.
Save m4kvn/0f3739c7f20b332ea51bba81df12b8a9 to your computer and use it in GitHub Desktop.
自律システム:講義5課題を解くために書いた
fun main(args: Array<String>) {
println("walk = 4 : ${walk(4)}")
println("walk = 5 : ${walk(5)}")
println("bike = 4 : ${bike(4)}")
println("bike = 5 : ${bike(5)}")
println("bus = 4 : ${bus(4)}")
println("bus = 5 : ${bus(5)}")
println("car = 4 : ${car(4)}")
println("car = 5 : ${car(5)}")
println("accident = 4 : ${accident(4)}")
println("accident = 5 : ${accident(5)}")
println("get = 4 : ${get(4)}")
println("get = 5 : ${get(5)}")
println("fall = 4 : ${fall(4)}")
println("fall = 5 : ${fall(5)}")
}
fun walk(k: Int): Double = when (k) {
0 -> 0.00
1 -> 100.00
2 -> 146.00
3 -> 167.00
else -> 100 + 0.5 * (0.6 * walk(k - 1) + 0.4 * bike(k - 1))
}
fun bike(k: Int): Double = when (k) {
0 -> 0.00
1 -> 80.00
2 -> 116.00
3 -> 131.00
else -> 80 + 0.5 * (0.6 * bike(k - 1) + 0.4 * bus(k - 1))
}
fun bus(k: Int): Double = when (k) {
0 -> 0.00
1 -> 60.00
2 -> 81.00
3 -> 89.850
else -> 60 + 0.5 * (0.7 * walk(k - 1) + 0.3 * car(k - 1))
}
fun car(k: Int): Double = when (k) {
0 -> 0.00
1 -> 0.00
2 -> 10.00
3 -> 16.350
else -> 0 + 0.5 * (0.9 * car(k - 1) + 0.1 * accident(k - 1))
}
fun accident(k: Int): Double = when (k) {
0 -> 0.00
1 -> 200.00
2 -> 237.00
3 -> 252.250
else -> 200 + 0.5 * (0.2 * walk(k - 1) + 0.3 * bike(k - 1) + 0.5 * bus(k - 1))
}
fun get(k: Int): Double = when (k) {
0 -> 0.00
1 -> 10.00
2 -> 10.50
3 -> 10.75
else -> 10 + 0.5 * (0.5 * get(k - 1) + 0.5 * fall(k - 1))
}
fun fall(k: Int): Double = when (k) {
0 -> 0.00
1 -> -8.00
2 -> -7.50
3 -> -7.25
else -> -8 + 0.5 * (0.5 * fall(k - 1) + 0.5 * get(k - 1))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment