Advertisement
Opetustv

DIA-pääsykokeen (28.5.13) "kadunylitystehtävä"

May 29th, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.89 KB | None | 0 0
  1. /**
  2.  * DIPLOMI-INSINÖÖRI- JA ARKKITEHTIKOULUTUKSEN YHTEISVALINTA, 28.5.2013
  3.  * (http://dia.fi/media/20742/insmat2013malli.pdf)
  4.  *
  5.  * Tehtävä A6/B6/C6/D6 (Harri Potteri ylittää katua)
  6.  *
  7.  * Puurakennetta hyödyntävä rekursiivinen, kaikki mahdollisuudet läpikäyvä ratkaisu.
  8.  * Ratkaisussa oletetaan, että myös alle 12 askeleen mittaiset "askellukset" kelpuutetaan.
  9.  * Kysytyksi todennäköisyydeksi saadaan tällöin n. 0,25557 = 25,57%.
  10.  *
  11.  * @author Tegu (#opetus.tv @ irc.freenode.net)
  12.  * @date 28.5.2013
  13.  */
  14.  
  15. #include <stdio.h>
  16.  
  17. double steps(int level, int dist, double prob) {
  18.     double sum = 0;
  19.     if (level >= 13) {
  20.         return 0.0;
  21.     }
  22.     sum += steps(level+1, dist+60, prob*0.6);
  23.     sum += steps(level+1, dist+30, prob*0.4);
  24.  
  25.     if (dist >= 610) {
  26.         return sum+prob;
  27.     }
  28.     return sum;
  29. }
  30.  
  31. int main(void) {
  32.  
  33.     double sum = steps(0, 0, 1.0);
  34.     printf("%f\n", sum);
  35.  
  36.     return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement