Created
May 22, 2017 15:20
-
-
Save m4kvn/0f3739c7f20b332ea51bba81df12b8a9 to your computer and use it in GitHub Desktop.
自律システム:講義5課題を解くために書いた
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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