{"id":66,"date":"2018-12-05T13:46:45","date_gmt":"2018-12-05T13:46:45","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/?post_type=chapter&#038;p=66"},"modified":"2019-04-08T15:56:25","modified_gmt":"2019-04-08T15:56:25","slug":"juhuslik-arv-seiklusmang","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/chapter\/juhuslik-arv-seiklusmang\/","title":{"raw":"Juhuslik arv. Seiklusm\u00e4ng","rendered":"Juhuslik arv. Seiklusm\u00e4ng"},"content":{"raw":"Eelmisel n\u00e4dalal tutvusime juhuslike arvudega, mida saab kasutada n\u00e4iteks erinevate m\u00e4nguliste programmide loomisel. N\u00fc\u00fcd saame juhuslikkust koos ts\u00fckliga rakendada. Uurime t\u00e4ringute veeretamist, ebav\u00f5rdseid t\u00f5en\u00e4osusi ning kirjutame v\u00e4ikese seiklusm\u00e4ngu.\r\n<h2>VISKAME T\u00c4RINGUID<\/h2>\r\nTeeme programmi, mis viskab viis korda t\u00e4ringut. Olgu see tavaline kuuetahuline t\u00e4ring.\r\n\r\n<strong>N\u00e4iteprogramm. T\u00e4ring I<\/strong>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-title=\"N\u00e4iteprogramm. T\u00e4ring I\">from random import randint\r\ni = 1\r\nwhile i &lt; 6:\r\n    print(\"T\u00e4ringu \" + str(i) + \". viskel saadi \" + str(randint(1, 6)) + \".\")\r\n    i += 1<\/pre>\r\nSageli tahame viske tulemusega midagi rohkemat teha, n\u00e4iteks tulemused kokku liita ja kuue saamisel eriliselt r\u00f5\u00f5mustada.\r\n\r\n<strong>N\u00e4iteprogramm. T\u00e4ring II<\/strong>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">from random import randint\r\ni = 1\r\ntulemus = 0\r\nwhile i &lt; 6:\r\n    vise = randint(1, 6)\r\n    print(\"T\u00e4ringu \" + str(i) + \". viskel saadi \" + str(vise) + \".\")\r\n    if vise == 6:\r\n        print(\"Hurraaaaaaaa!\")\r\n    tulemus += vise\r\n    i += 1\r\nprint(\"Kogutulemus on \" + str(tulemus) + \".\")<\/pre>\r\nV\u00f5id muuta programmi nii, et 6-tahulise t\u00e4ringu asemel kasutataks m\u00f5nd teistsuguse tahkude arvuga t\u00e4ringut. Tahkude arvu v\u00f5ib k\u00fcsida ka kasutajalt.\r\n<h2>EBAV\u00d5RDSED T\u00d5EN\u00c4OSUSED<\/h2>\r\nEelmises n\u00e4ites oli meie kuuetahulise t\u00e4ringu igal viskel iga tahu esinemise t\u00f5en\u00e4osus 1\/6, mille tagas funktsioon <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">randint(1, 6)<\/code><\/code><code><\/code>. M\u00fcndiviske puhul saame ausa m\u00fcndi funktsiooni <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">randint(1, 2)<\/code><\/code> abil.\r\n\r\nOlgu n\u00fc\u00fcd olukord, kus keegi on m\u00fcndiga manipuleerinud ning teinud nii, et kulli ja kirja t\u00f5en\u00e4osused pole enam v\u00f5rdsed. Olgu kirja tulemise t\u00f5en\u00e4osus 73% (ehk 0,73). Selle esitamiseks kasutame funktsiooni <code>randint(1, 100)<\/code>, mis annab v\u00f5rdse t\u00f5en\u00e4osusega \u00fche t\u00e4isarvu l\u00f5igus 1 kuni 100. Saadud arv on 73 v\u00f5i v\u00e4iksem t\u00f5en\u00e4osusega 73%. Kirjutame j\u00e4rgmise programmi:\r\n\r\n<strong>N\u00e4iteprogramm. Ebav\u00f5rdne m\u00fcnt<\/strong>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">from random import randint\r\nt\u00f5en\u00e4osus = 73\r\ni = 0\r\nwhile i &lt; 10:\r\n    if randint(1, 100) &lt;= t\u00f5en\u00e4osus:\r\n        print(\"kiri\")\r\n    else:\r\n        print(\"kull\")\r\n    i += 1<\/pre>\r\nProgrammi k\u00e4ivitades n\u00e4eme, et kiri esineb tavaliselt sagedamini kui kull. Proovi lisada programmile loendur, mis kirjade arvu j\u00e4lgiks. Suurenda ka ts\u00fckli korduste arvu: piisavalt paljude ts\u00fckli kordustega l\u00e4heneb kirjade osakaal 73%-le. Samalaadselt simuleeritakse erinevaid t\u00f5en\u00e4osuslikke protsesse paljudes programmides.\r\n<h2>SEIKLUS METSAS<\/h2>\r\nJ\u00e4rgmine programm on eelnevatest pikem ja simuleerib v\u00f5imalikku jalutusk\u00e4iku metsas, kus leidub nii ohte kui ahvatlusi. Katseta programmi ning m\u00f5tle selle ehitusele. Programmi plokkskeem joonisel 1 avaneb peale vajutades suuremalt.\r\n\r\n<strong>N\u00e4iteprogramm. Seiklus metsas<\/strong>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">from random import randint\r\nelusid = 3\r\nm\u00fcnte = 0\r\nwhile elusid &gt; 0:\r\n    print(\"Jalutasid metsas ja n\u00e4gid \", end = \"\") # ei vaheta rida\r\n    kedaMida = randint(1, 3)\r\n    if kedaMida == 1:\r\n        print(\"seent\", end = \"\") # ei vaheta rida\r\n        if randint(1, 2) == 1:\r\n            print(\", mis kahjuks oli m\u00fcrgiseen ja sa kaotasid \u00fche elu.\")\r\n            elusid -= 1\r\n        else:\r\n            print(\", mis \u00f5nneks oli s\u00f6\u00f6giseen ja sa said selle m\u00fc\u00fcgist \u00fche kuldm\u00fcndi.\")     \r\n            m\u00fcnte += 1\r\n    elif kedaMida == 2:\r\n        print(\"karu\", end = \"\") # ei vaheta rida\r\n        if randint(1, 2) == 1:\r\n            print(\", kes kahjuks oli vihane ja sa kaotasid \u00fche elu.\")\r\n            elusid -= 1\r\n        else:\r\n            print(\", kes \u00f5nneks oli r\u00f5\u00f5mus ja sa said temalt 5 kuldm\u00fcnti.\")     \r\n            m\u00fcnte += 5\r\n    else:\r\n        print(\"kuldm\u00fcnti ja said selle endale.\")\r\n        m\u00fcnte +=1\r\n    print(\"N\u00fc\u00fcd on sul \" + str(elusid) + \" elu ja \" + str(m\u00fcnte) + \" kuldm\u00fcnti.\")\r\n    input(\"J\u00e4tkamiseks vajuta Enter-klahvi.\")\r\nprint(\"Sellega on su seiklus kahjuks l\u00e4bi.\")<\/pre>\r\n[caption id=\"attachment_69\" align=\"aligncenter\" width=\"173\"]<a href=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/Ndal3_seiklus.png\"><img class=\"wp-image-69 size-medium\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/Ndal3_seiklus-173x300.png\" alt=\"\" width=\"173\" height=\"300\" \/><\/a> Joonis 1. \"Seiklus metsas\" plokkskeem[\/caption]\r\n\r\nT\u00e4ienda programmi. N\u00e4iteks tee nii, et\r\n<ul>\r\n \t<li>teatud m\u00fcntide arvu juures kuulutatakse m\u00e4ngija v\u00f5itjaks (hetkel on v\u00f5imalik ainult kaotada);<\/li>\r\n \t<li>ohte v\u00f5i ahvatlusi oleks rohkem;<\/li>\r\n \t<li>elu kaotamise t\u00f5en\u00e4osus oleks v\u00e4iksem;<\/li>\r\n \t<li>kasutaja saaks saatuse m\u00e4\u00e4ramisel kuidagi kaasa l\u00fc\u00fca.<\/li>\r\n<\/ul>\r\n<h3>Enesekontroll (1 k\u00fcsimus)<\/h3>\r\n<code>[h5p id=\"6\"]<\/code>\r\n\r\nPalun kommenteeri seda materjali <a href=\"https:\/\/docs.google.com\/forms\/d\/e\/1FAIpQLScS4ZAaPjsQruCaMaGLPctXc65iHUYiMFOYayfu-kBKcFyhHQ\/viewform\" target=\"_blank\" rel=\"noopener\">Google'i k\u00fcsimustikus<\/a>.","rendered":"<p>Eelmisel n\u00e4dalal tutvusime juhuslike arvudega, mida saab kasutada n\u00e4iteks erinevate m\u00e4nguliste programmide loomisel. N\u00fc\u00fcd saame juhuslikkust koos ts\u00fckliga rakendada. Uurime t\u00e4ringute veeretamist, ebav\u00f5rdseid t\u00f5en\u00e4osusi ning kirjutame v\u00e4ikese seiklusm\u00e4ngu.<\/p>\n<h2>VISKAME T\u00c4RINGUID<\/h2>\n<p>Teeme programmi, mis viskab viis korda t\u00e4ringut. Olgu see tavaline kuuetahuline t\u00e4ring.<\/p>\n<p><strong>N\u00e4iteprogramm. T\u00e4ring I<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-title=\"N\u00e4iteprogramm. T\u00e4ring I\">from random import randint\r\ni = 1\r\nwhile i &lt; 6:\r\n    print(\"T\u00e4ringu \" + str(i) + \". viskel saadi \" + str(randint(1, 6)) + \".\")\r\n    i += 1<\/pre>\n<p>Sageli tahame viske tulemusega midagi rohkemat teha, n\u00e4iteks tulemused kokku liita ja kuue saamisel eriliselt r\u00f5\u00f5mustada.<\/p>\n<p><strong>N\u00e4iteprogramm. T\u00e4ring II<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">from random import randint\r\ni = 1\r\ntulemus = 0\r\nwhile i &lt; 6:\r\n    vise = randint(1, 6)\r\n    print(\"T\u00e4ringu \" + str(i) + \". viskel saadi \" + str(vise) + \".\")\r\n    if vise == 6:\r\n        print(\"Hurraaaaaaaa!\")\r\n    tulemus += vise\r\n    i += 1\r\nprint(\"Kogutulemus on \" + str(tulemus) + \".\")<\/pre>\n<p>V\u00f5id muuta programmi nii, et 6-tahulise t\u00e4ringu asemel kasutataks m\u00f5nd teistsuguse tahkude arvuga t\u00e4ringut. Tahkude arvu v\u00f5ib k\u00fcsida ka kasutajalt.<\/p>\n<h2>EBAV\u00d5RDSED T\u00d5EN\u00c4OSUSED<\/h2>\n<p>Eelmises n\u00e4ites oli meie kuuetahulise t\u00e4ringu igal viskel iga tahu esinemise t\u00f5en\u00e4osus 1\/6, mille tagas funktsioon <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">randint(1, 6)<\/code><\/code><code><\/code>. M\u00fcndiviske puhul saame ausa m\u00fcndi funktsiooni <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">randint(1, 2)<\/code><\/code> abil.<\/p>\n<p>Olgu n\u00fc\u00fcd olukord, kus keegi on m\u00fcndiga manipuleerinud ning teinud nii, et kulli ja kirja t\u00f5en\u00e4osused pole enam v\u00f5rdsed. Olgu kirja tulemise t\u00f5en\u00e4osus 73% (ehk 0,73). Selle esitamiseks kasutame funktsiooni <code>randint(1, 100)<\/code>, mis annab v\u00f5rdse t\u00f5en\u00e4osusega \u00fche t\u00e4isarvu l\u00f5igus 1 kuni 100. Saadud arv on 73 v\u00f5i v\u00e4iksem t\u00f5en\u00e4osusega 73%. Kirjutame j\u00e4rgmise programmi:<\/p>\n<p><strong>N\u00e4iteprogramm. Ebav\u00f5rdne m\u00fcnt<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">from random import randint\r\nt\u00f5en\u00e4osus = 73\r\ni = 0\r\nwhile i &lt; 10:\r\n    if randint(1, 100) &lt;= t\u00f5en\u00e4osus:\r\n        print(\"kiri\")\r\n    else:\r\n        print(\"kull\")\r\n    i += 1<\/pre>\n<p>Programmi k\u00e4ivitades n\u00e4eme, et kiri esineb tavaliselt sagedamini kui kull. Proovi lisada programmile loendur, mis kirjade arvu j\u00e4lgiks. Suurenda ka ts\u00fckli korduste arvu: piisavalt paljude ts\u00fckli kordustega l\u00e4heneb kirjade osakaal 73%-le. Samalaadselt simuleeritakse erinevaid t\u00f5en\u00e4osuslikke protsesse paljudes programmides.<\/p>\n<h2>SEIKLUS METSAS<\/h2>\n<p>J\u00e4rgmine programm on eelnevatest pikem ja simuleerib v\u00f5imalikku jalutusk\u00e4iku metsas, kus leidub nii ohte kui ahvatlusi. Katseta programmi ning m\u00f5tle selle ehitusele. Programmi plokkskeem joonisel 1 avaneb peale vajutades suuremalt.<\/p>\n<p><strong>N\u00e4iteprogramm. Seiklus metsas<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">from random import randint\r\nelusid = 3\r\nm\u00fcnte = 0\r\nwhile elusid &gt; 0:\r\n    print(\"Jalutasid metsas ja n\u00e4gid \", end = \"\") # ei vaheta rida\r\n    kedaMida = randint(1, 3)\r\n    if kedaMida == 1:\r\n        print(\"seent\", end = \"\") # ei vaheta rida\r\n        if randint(1, 2) == 1:\r\n            print(\", mis kahjuks oli m\u00fcrgiseen ja sa kaotasid \u00fche elu.\")\r\n            elusid -= 1\r\n        else:\r\n            print(\", mis \u00f5nneks oli s\u00f6\u00f6giseen ja sa said selle m\u00fc\u00fcgist \u00fche kuldm\u00fcndi.\")     \r\n            m\u00fcnte += 1\r\n    elif kedaMida == 2:\r\n        print(\"karu\", end = \"\") # ei vaheta rida\r\n        if randint(1, 2) == 1:\r\n            print(\", kes kahjuks oli vihane ja sa kaotasid \u00fche elu.\")\r\n            elusid -= 1\r\n        else:\r\n            print(\", kes \u00f5nneks oli r\u00f5\u00f5mus ja sa said temalt 5 kuldm\u00fcnti.\")     \r\n            m\u00fcnte += 5\r\n    else:\r\n        print(\"kuldm\u00fcnti ja said selle endale.\")\r\n        m\u00fcnte +=1\r\n    print(\"N\u00fc\u00fcd on sul \" + str(elusid) + \" elu ja \" + str(m\u00fcnte) + \" kuldm\u00fcnti.\")\r\n    input(\"J\u00e4tkamiseks vajuta Enter-klahvi.\")\r\nprint(\"Sellega on su seiklus kahjuks l\u00e4bi.\")<\/pre>\n<figure id=\"attachment_69\" aria-describedby=\"caption-attachment-69\" style=\"width: 173px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/Ndal3_seiklus.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-69 size-medium\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/Ndal3_seiklus-173x300.png\" alt=\"\" width=\"173\" height=\"300\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/Ndal3_seiklus-173x300.png 173w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/Ndal3_seiklus-589x1024.png 589w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/Ndal3_seiklus-65x113.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/Ndal3_seiklus-225x391.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/Ndal3_seiklus-350x608.png 350w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2018\/12\/Ndal3_seiklus.png 698w\" sizes=\"auto, (max-width: 173px) 100vw, 173px\" \/><\/a><figcaption id=\"caption-attachment-69\" class=\"wp-caption-text\">Joonis 1. &#8220;Seiklus metsas&#8221; plokkskeem<\/figcaption><\/figure>\n<p>T\u00e4ienda programmi. N\u00e4iteks tee nii, et<\/p>\n<ul>\n<li>teatud m\u00fcntide arvu juures kuulutatakse m\u00e4ngija v\u00f5itjaks (hetkel on v\u00f5imalik ainult kaotada);<\/li>\n<li>ohte v\u00f5i ahvatlusi oleks rohkem;<\/li>\n<li>elu kaotamise t\u00f5en\u00e4osus oleks v\u00e4iksem;<\/li>\n<li>kasutaja saaks saatuse m\u00e4\u00e4ramisel kuidagi kaasa l\u00fc\u00fca.<\/li>\n<\/ul>\n<h3>Enesekontroll (1 k\u00fcsimus)<\/h3>\n<p><code><\/p>\n<div id=\"h5p-6\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-6\" class=\"h5p-iframe\" data-content-id=\"6\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"Ts\u00fckkel-4-seiklus-metsas\"><\/iframe><\/div>\n<\/div>\n<p><\/code><\/p>\n<p>Palun kommenteeri seda materjali <a href=\"https:\/\/docs.google.com\/forms\/d\/e\/1FAIpQLScS4ZAaPjsQruCaMaGLPctXc65iHUYiMFOYayfu-kBKcFyhHQ\/viewform\" target=\"_blank\" rel=\"noopener\">Google&#8217;i k\u00fcsimustikus<\/a>.<\/p>\n","protected":false},"author":12,"menu_order":5,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-66","chapter","type-chapter","status-publish","hentry"],"part":21,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/66","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/users\/12"}],"version-history":[{"count":10,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/66\/revisions"}],"predecessor-version":[{"id":414,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/66\/revisions\/414"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/parts\/21"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/66\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/media?parent=66"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapter-type?post=66"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/contributor?post=66"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/license?post=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}