/
fedorhub
/
Python_Le
Обзор
Документация
Войти
/
fedorhub
/
Python_Le
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
python/random-11/index.htm
1 740 строк
234 KB
fedorhub
upload files
17 дек 2025, 14:35
17 дек 2025, 14:35
50de53d
Код
Авторство
О чём код?
<!DOCTYPE html> <html class="no-js" lang="ru-RU"> <head> <meta http-equiv="content-type" content="text/html" charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" > <link rel="profile" href="http://gmpg.org/xfn/11"> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <script> MathJax = { tex: { inlineMath: [['$','$'],['\\(','\\)']], processEscapes: true }, options: { ignoreHtmlClass: 'tex2jax_ignore|editor-rich-text' } }; </script> <!-- This site is optimized with the Yoast SEO plugin v23.8 - https://yoast.com/wordpress/plugins/seo/ --> <title>Модуль random. Часть 1 | Программирование на Питоне</title> <meta name="description" content="Модуль random позволяет генерировать псевдослучайные числа и работать со случайными событиями." /> <link rel="canonical" href="https://www.dmitrymakarov.ru/python/random-11/" /> <meta property="og:locale" content="ru_RU" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Модуль random. Часть 1 | Программирование на Питоне" /> <meta property="og:description" content="Модуль random позволяет генерировать псевдослучайные числа и работать со случайными событиями." /> <meta property="og:url" content="https://www.dmitrymakarov.ru/python/random-11/" /> <meta property="og:site_name" content="Машинное обучение" /> <meta property="article:modified_time" content="2024-10-12T18:22:08+00:00" /> <meta property="og:image" content="https://www.dmitrymakarov.ru/wp-content/uploads/2024/06/image-29.png" /> <meta property="og:image:width" content="1975" /> <meta property="og:image:height" content="1103" /> <meta property="og:image:type" content="image/png" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:label1" content="Примерное время для чтения" /> <meta name="twitter:data1" content="3 минуты" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://www.dmitrymakarov.ru/python/random-11/","url":"https://www.dmitrymakarov.ru/python/random-11/","name":"Модуль random. Часть 1 | Программирование на Питоне","isPartOf":{"@id":"https://www.dmitrymakarov.ru/#website"},"primaryImageOfPage":{"@id":"https://www.dmitrymakarov.ru/python/random-11/#primaryimage"},"image":{"@id":"https://www.dmitrymakarov.ru/python/random-11/#primaryimage"},"thumbnailUrl":"https://www.dmitrymakarov.ru/wp-content/uploads/2024/06/image-29-1024x572.png","datePublished":"2023-02-01T13:33:24+00:00","dateModified":"2024-10-12T18:22:08+00:00","description":"Модуль random позволяет генерировать псевдослучайные числа и работать со случайными событиями.","breadcrumb":{"@id":"https://www.dmitrymakarov.ru/python/random-11/#breadcrumb"},"inLanguage":"ru-RU","potentialAction":[{"@type":"ReadAction","target":["https://www.dmitrymakarov.ru/python/random-11/"]}]},{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https://www.dmitrymakarov.ru/python/random-11/#primaryimage","url":"https://www.dmitrymakarov.ru/wp-content/uploads/2024/06/image-29.png","contentUrl":"https://www.dmitrymakarov.ru/wp-content/uploads/2024/06/image-29.png","width":1975,"height":1103},{"@type":"BreadcrumbList","@id":"https://www.dmitrymakarov.ru/python/random-11/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Главная страница","item":"https://www.dmitrymakarov.ru/"},{"@type":"ListItem","position":2,"name":"Программирование на Питоне","item":"https://www.dmitrymakarov.ru/python/"},{"@type":"ListItem","position":3,"name":"Модуль random. Часть 1"}]},{"@type":"WebSite","@id":"https://www.dmitrymakarov.ru/#website","url":"https://www.dmitrymakarov.ru/","name":"Машинное обучение","description":"","publisher":{"@id":"https://www.dmitrymakarov.ru/#/schema/person/3fc221e2d391cc5cfd9d31c9c251c2a4"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.dmitrymakarov.ru/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ru-RU"},{"@type":["Person","Organization"],"@id":"https://www.dmitrymakarov.ru/#/schema/person/3fc221e2d391cc5cfd9d31c9c251c2a4","name":"DmitryMakarov","image":{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https://www.dmitrymakarov.ru/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/2c5f922d990c667feffc00f99517cc0e?s=96&d=mm&r=g","contentUrl":"https://secure.gravatar.com/avatar/2c5f922d990c667feffc00f99517cc0e?s=96&d=mm&r=g","caption":"DmitryMakarov"},"logo":{"@id":"https://www.dmitrymakarov.ru/#/schema/person/image/"}}]}</script> <!-- / Yoast SEO plugin. --> <link rel='dns-prefetch' href='//cdn.jsdelivr.net' /> <link rel="alternate" type="application/rss+xml" title="Машинное обучение » Лента" href="https://www.dmitrymakarov.ru/feed/" /> <link rel="alternate" type="application/rss+xml" title="Машинное обучение » Лента комментариев" href="https://www.dmitrymakarov.ru/comments/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.dmitrymakarov.ru\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.6.2"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <link rel='stylesheet' id='mci-footnotes-no-tooltips-pagelayout-none-css' href='https://www.dmitrymakarov.ru/wp-content/plugins/footnotes/css/footnotes-nottbrpl0.min.css?ver=2.7.3' type='text/css' media='all' /> <link rel='stylesheet' id='urvanov_syntax_highlighter-css' href='https://www.dmitrymakarov.ru/wp-content/plugins/urvanov-syntax-highlighter/css/min/urvanov_syntax_highlighter.min.css?ver=2.8.37' type='text/css' media='all' /> <link rel='stylesheet' id='crayon-theme-familiar-my-copy-css' href='https://www.dmitrymakarov.ru/wp-content/uploads/urvanov-syntax-highlighter/themes/familiar-my-copy/familiar-my-copy.css?ver=2.8.37' type='text/css' media='all' /> <link rel='stylesheet' id='crayon-font-consolas-css' href='https://www.dmitrymakarov.ru/wp-content/plugins/urvanov-syntax-highlighter/fonts/consolas.css?ver=2.8.37' type='text/css' media='all' /> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://www.dmitrymakarov.ru/wp-includes/css/dist/block-library/style.min.css?ver=6.6.2' type='text/css' media='all' /> <link rel='stylesheet' id='ultimate_blocks-cgb-style-css-css' href='https://www.dmitrymakarov.ru/wp-content/plugins/ultimate-blocks/dist/blocks.style.build.css?ver=672da51c04c91' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #121212;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #fff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--dark-gray: #333;--wp--preset--color--medium-gray: #555;--wp--preset--color--light-gray: #777;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 16px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 24px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--normal: 18px;--wp--preset--font-size--larger: 28px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='ub-extension-style-css-css' href='https://www.dmitrymakarov.ru/wp-content/plugins/ultimate-blocks/src/extensions/style.css?ver=6.6.2' type='text/css' media='all' /> <link rel='stylesheet' id='mcluhan-fonts-css' href='https://www.dmitrymakarov.ru/wp-content/themes/mcluhan/assets/css/fonts.css?ver=6.6.2' type='text/css' media='all' /> <link rel='stylesheet' id='fontawesome-css' href='https://www.dmitrymakarov.ru/wp-content/themes/mcluhan/assets/css/font-awesome.css?ver=6.6.2' type='text/css' media='all' /> <link rel='stylesheet' id='mcluhan-style-css' href='https://www.dmitrymakarov.ru/wp-content/themes/mcluhan/style.css?ver=2.1.1' type='text/css' media='all' /> <script type="text/javascript" src="https://www.dmitrymakarov.ru/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://www.dmitrymakarov.ru/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script type="text/javascript" id="urvanov_syntax_highlighter_js-js-extra"> /* <![CDATA[ */ var UrvanovSyntaxHighlighterSyntaxSettings = {"version":"2.8.37","is_admin":"0","ajaxurl":"https:\/\/www.dmitrymakarov.ru\/wp-admin\/admin-ajax.php","prefix":"urvanov-syntax-highlighter-","setting":"urvanov-syntax-highlighter-setting","selected":"urvanov-syntax-highlighter-setting-selected","changed":"urvanov-syntax-highlighter-setting-changed","special":"urvanov-syntax-highlighter-setting-special","orig_value":"data-orig-value","debug":""}; var UrvanovSyntaxHighlighterSyntaxStrings = {"copy":"Copied to the clipboard","minimize":"Click To Expand Code"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.dmitrymakarov.ru/wp-content/plugins/urvanov-syntax-highlighter/js/min/urvanov_syntax_highlighter.min.js?ver=2.8.37" id="urvanov_syntax_highlighter_js-js"></script> <style>#ub_table-of-contents-715f3ef5-47c9-4bc9-9c9e-2d0c2179e94b{ }#ub_table-of-contents-715f3ef5-47c9-4bc9-9c9e-2d0c2179e94b .ub_table-of-contents-header{ text-align: left; } </style> <!-- Customizer CSS --> <style type="text/css"> body .site-header { background-color:#004235; }.social-menu.desktop { background-color:#004235; }.social-menu a:hover { color:#004235; }.social-menu a.active { color:#004235; }.mobile-menu-wrapper { background-color:#004235; }.social-menu.mobile { background-color:#004235; }.mobile-search.active { background-color:#004235; } </style> <!-- /Customizer CSS --> <script>jQuery( 'html' ).removeClass( 'no-js' ).addClass( 'js' );</script> <style type="text/css">.broken_link, a.broken_link { text-decoration: line-through; }</style><style type="text/css" id="custom-background-css"> body.custom-background { background-color: #fff9ef; } </style> <link rel="icon" href="https://www.dmitrymakarov.ru/wp-content/uploads/2021/08/cropped-wp-favicon-512-32x32.png" sizes="32x32" /> <link rel="icon" href="https://www.dmitrymakarov.ru/wp-content/uploads/2021/08/cropped-wp-favicon-512-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://www.dmitrymakarov.ru/wp-content/uploads/2021/08/cropped-wp-favicon-512-180x180.png" /> <meta name="msapplication-TileImage" content="https://www.dmitrymakarov.ru/wp-content/uploads/2021/08/cropped-wp-favicon-512-270x270.png" /> <style type="text/css" media="all"> .footnotes_reference_container {margin-top: 24px !important; margin-bottom: 0px !important;} .footnote_container_prepare > p {border-bottom: 1px solid #aaaaaa !important;} </style> </head> <body class="page-template page-template-full-width-page-template page-template-full-width-page-template-php page page-id-18491 page-child parent-pageid-1374 custom-background full-width-template"> <a class="skip-link button" href="#site-content">Перейти к содержимому</a> <header class="site-header group"> <p class="site-title"><a href="https://www.dmitrymakarov.ru" class="site-name">Машинное обучение</a></p> <div class="nav-toggle"> <div class="bar"></div> <div class="bar"></div> </div> <div class="menu-wrapper"> <ul class="main-menu desktop"> </ul> </div><!-- .menu-wrapper --> <div class="social-menu desktop"> <ul class="social-menu-inner"> <li class="social-search-wrapper"><a href="https://www.dmitrymakarov.ru/?s="></a></li> </ul><!-- .social-menu-inner --> </div><!-- .social-menu --> </header><!-- header --> <div class="mobile-menu-wrapper"> <ul class="main-menu mobile"> <li class="toggle-mobile-search-wrapper"><a href="#" class="toggle-mobile-search">Поиск</a></li> </ul><!-- .main-menu.mobile --> </div><!-- .mobile-menu-wrapper --> <div class="mobile-search"> <div class="untoggle-mobile-search"></div> <form role="search" method="get" class="search-form" action="https://www.dmitrymakarov.ru/"> <label class="screen-reader-text" for="search-form-672da51c1d01b">Поиск:</label> <input type="search" id="search-form-672da51c1d01b" class="search-field" placeholder="Введите запрос" value="" name="s" autocomplete="off" /> </button> </form> <div class="mobile-results"> <div class="results-wrapper"></div> </div> </div><!-- .mobile-search --> <div class="search-overlay"> <form role="search" method="get" class="search-form" action="https://www.dmitrymakarov.ru/"> <label class="screen-reader-text" for="search-form-672da51c1d09b">Поиск:</label> <input type="search" id="search-form-672da51c1d09b" class="search-field" placeholder="Введите запрос" value="" name="s" autocomplete="off" /> </button> </form> </div><!-- .search-overlay --> <main class="site-content" id="site-content"> <article class="post-18491 page type-page status-publish hentry missing-thumbnail"> <header class="entry-header section-inner"> <h1 class="entry-title">Модуль random. Часть 1</h1> </header><!-- .entry-header --> <div class="entry-content section-inner"> <p class="has-light-gray-color has-text-color"><a href="https://www.dmitrymakarov.ru/">Все курсы</a> > <a href="https://www.dmitrymakarov.ru/python/">Программирование на Питоне</a> > Занятие 11 (часть 1)</p> <p>Библиотека Numpy предоставляет широкие возможности по работе со случайными числами. Для этого в ней предусмотрен модуль random.</p> <p class="has-background" style="background-color:#ffe8c4"><strong>Модуль random</strong> — это модуль, который позволяет генерировать псевдослучайные числа и таким образом имитировать случайные события.</p> <p>При этом прежде чем перейти к изучению кода, давайте познакомимся с некоторыми ключевыми понятиями теории вероятностей.</p> <div class="wp-block-ub-table-of-contents-block ub_table-of-contents" id="ub_table-of-contents-715f3ef5-47c9-4bc9-9c9e-2d0c2179e94b" data-linktodivider="false" data-showtext="show" data-hidetext="hide" data-scrolltype="auto" data-initiallyhideonmobile="false" data-initiallyshow="true"><div class="ub_table-of-contents-header-container"><div class="ub_table-of-contents-header"> <div class="ub_table-of-contents-title"><strong>Содержание занятия</strong></div></div></div><div class="ub_table-of-contents-extra-container"><div class="ub_table-of-contents-container ub_table-of-contents-1-column "><ul><li><a href=https://www.dmitrymakarov.ru/python/random-11/#0-sluchaynaya-velichina>Случайная величина</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#1-veroyatnost-sluchaynoy-velichiny>Вероятность случайной величины</a><ul><li><a href=https://www.dmitrymakarov.ru/python/random-11/#2-klassicheskaya-teoreticheskaya-veroyatnost>Классическая (теоретическая) вероятность</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#3-otnositelnaya-empiricheskaya-veroyatnost>Относительная (эмпирическая) вероятность</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#4-zakon-bolshikh-chisel>Закон больших чисел</a></li></ul></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#5-modul-random-biblioteki-numpy>Модуль random библиотеки Numpy</a><ul><li><a href=https://www.dmitrymakarov.ru/python/random-11/#6-podbrasyvanie-monety>Подбрасывание монеты</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#7-brosanie-igralnoy-kosti>Бросание игральной кости</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#8-metod-monte-karlo>Метод Монте-Карло</a><ul><li><a href=https://www.dmitrymakarov.ru/python/random-11/#9-shag-1-metod-monte-karlo>Шаг 1. Метод Монте-Карло</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#10-shag-2-napishem-kod-dlya-provedeniya-ispytaniy>Шаг 2. Напишем код для проведения испытаний</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#11-shag-3-rasschitaem-dolyu-uspeshnykh-ispytaniy>Шаг 3. Рассчитаем долю успешных испытаний</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#12-shag-4-provedem-polnotsennye-ispytaniya-algoritma>Шаг 4. Проведем полноценные испытания алгоритма</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#13-shag-5-otsenim-rezultat-vizualno>Шаг 5. Оценим результат визуально</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#14-primer-vektorizovannogo-koda>Пример векторизованного кода</a></li></ul></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#15-zadacha-o-dvukh-konvertakh>Задача о двух конвертах</a><ul><li><a href=https://www.dmitrymakarov.ru/python/random-11/#16-analiticheskoe-reshenie>Аналитическое решение</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#17-modelirovanie-s-pomoshchyu-modulya-random>Моделирование с помощью модуля random</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#18-paradoks-dvukh-konvertov>Парадокс двух конвертов</a></li></ul></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#19-metod-sluchaynykh-bluzhdaniy>Метод случайных блужданий</a><ul><li><a href=https://www.dmitrymakarov.ru/python/random-11/#20-sluchaynoe-bluzhdanie-po-chislovoy-pryamoy>Случайное блуждание по числовой прямой</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#21-doedem-li-my-iz-moskvy-do-sankt-peterburga>Доедем ли мы из Москвы до Санкт-Петербурга</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#22-funktsiya-sluchaynogo-bluzhdaniya>Функция случайного блуждания</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#23-sozdanie-odnogo-sluchaynogo-bluzhdaniya>Создание одного случайного блуждания</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#24-modelirovanie-neskolkikh-sluchaynykh-bluzhdaniy>Моделирование нескольких случайных блужданий</a></li><li><a href=https://www.dmitrymakarov.ru/python/random-11/#25-veroyatnost-preodoleniya-puti>Вероятность преодоления пути</a></li></ul></li></ul></li></ul></div></div></div> <h2 class="wp-block-heading" id="0-sluchaynaya-velichina">Случайная величина</h2> <p>Рассмотрим некоторое <strong>событие</strong> (event) $A$, например, выпадение пятерки на игральной кости. Это событие <strong>случайно</strong> (random process), так как оно может произойти, а может не произойти.</p> <p><strong>Испытанием</strong> (trial) или экспериментом будет процесс бросания игральной кости, а элементарными <strong>исходами</strong> (outcomes) испытания $\omega_i$ («омега» малое) — возможные результаты, то есть грани с числами от одного до шести.</p> <p>Совокупность элементарных исходов называется <strong>пространством</strong> элементарных исходов (sample space) $\Omega$ («омега» большое).</p> <figure class="wp-block-image size-large is-resized"><img fetchpriority="high" decoding="async" width="1024" height="572" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/06/image-29-1024x572.png" alt="случайная величина" class="wp-image-28094" style="width:666px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/06/image-29-1024x572.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/06/image-29-300x168.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/06/image-29-768x429.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/06/image-29-1536x858.png 1536w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/06/image-29-1200x670.png 1200w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/06/image-29-600x335.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/06/image-29.png 1975w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <p>При этом <strong>случайная величина</strong> (random variable) $X$ — это численное значение результата испытания. Одновременно речь идет о функции $\xi$ («кси»), которая отображает множество элементарных исходов $\omega_i$ на некоторое числовое множество $x_i = \xi(\omega_i)$.</p> <h2 class="wp-block-heading" id="1-veroyatnost-sluchaynoy-velichiny">Вероятность случайной величины</h2> <p>Хотя по определению случайное событие предсказать нельзя, мы можем предположить, с какой вероятностью оно произойдет. Начнем с классического или как еще говорят теоретического определения вероятности.</p> <h3 class="wp-block-heading" id="2-klassicheskaya-teoreticheskaya-veroyatnost">Классическая (теоретическая) вероятность</h3> <p>Пусть $k$ — количество благоприятствующих событию A исходов (то есть исходов, которые влекут за собой наступление события $A$), а $n$ — общее количество равновозможных исходов, тогда теоретической вероятностью события $A$ будет</p> <p>$$ P(A) = \frac{k}{n} $$</p> <p>Разберем это определение на том же примере бросания игральной кости.</p> <p>В частности, выпадение двойки или тройки благоприятствует (приводит к наступлению) случайного события $A$. Таких исходов два (либо двойка, либо тройка) и соответственно $k = 2$. Всего исходов шесть и вероятность их наступления одинакова (они равновозможны). Значит $n = 6$. Рассчитаем теоретическую вероятность такого события.</p> <p>$$ P(A) = \frac{2}{6} = \frac{1}{3} $$</p> <p>Аналогично, вероятность выпадения орла или решки на «честной» монете (fair coin) равна 1/2, а вероятность вытащить червы из колоды, в которой 36 карт, равна 9/36 или 1/4.</p> <p>Вероятность любого события <strong>находится в диапазоне от 0 до 1</strong>. При этом событие с нулевой вероятностью называется невозможным, а с вероятностью равной единице — достоверным. В промежутке находятся случайные события.</p> <p>Сумма вероятностей событий, образующих полную группу, <strong>всегда равна единице</strong>. Выпадение орла и выпадение решки образуют полную группу (других событий при подбрасывании монеты быть не может). Вероятность каждого из этих событий равна 1/2, сумма этих вероятностей — единице.</p> <h3 class="wp-block-heading" id="3-otnositelnaya-empiricheskaya-veroyatnost">Относительная (эмпирическая) вероятность</h3> <p>Эмпирическая вероятность события — это отношение частоты наступления события А к общему числу испытаний. По большому счету, мы бросаем кости несколько раз и считаем, сколько раз выпала двойка или тройка по отношению к общему количеству бросков.</p> <p>Предположим, мы бросали кость 10 раз и двойка или тройка выпали 4 раза. Рассчитаем эмпирическую вероятность такого события.</p> <p>$$ P(A) = \frac{4}{10} = \frac{2}{5} $$</p> <p>Испытаний (бросков) было проведено очень мало и эмпирическая вероятность довольно сильно отличается от теоретической. Что же будет, если кратно увеличить количество бросков?</p> <h3 class="wp-block-heading" id="4-zakon-bolshikh-chisel">Закон больших чисел</h3> <p>Закон больших чисел (Law of large numbers) утверждает, что при проведении множества испытаний эмпирическая вероятность начнет приближаться к теоретической. Другими словами, если бросать кость достаточное количество раз, то эмпирическая вероятность выпадения двойки или тройки приблизится к 1/3.</p> <p class="has-text-align-center has-white-color has-text-color has-background" style="background-color:#004235"><a href="https://colab.research.google.com/drive/1VX5VlmmBXhFqdY4uRxjE1a3uwAqNyNTh?usp=sharing" target="_blank" rel="noreferrer noopener">Откроем блокнот к этому занятию</a>⧉</p> <h2 class="wp-block-heading" id="5-modul-random-biblioteki-numpy">Модуль random библиотеки Numpy</h2> <p>Начнем изучение модуля random с нескольких практических примеров. В частности посмотрим, как можно имитировать подбрасывание монеты и бросание игральной кости, убедимся в верности Закона больших чисел с помощью метода Монте-Карло, рассмотрим задачу о двух конвертах, а также познакомимся с методом случайных блужданий.</p> <h3 class="wp-block-heading" id="6-podbrasyvanie-monety">Подбрасывание монеты</h3> <p>Подбрасывание монеты можно имитировать, обозначив орел и решку через 0 и 1 и случайно генерируя соответствующие числа. Для этого подойдет <strong>функция np.random.randint()</strong>.</p> <p>На входе функция принимает границы диапазона (верхняя граница в диапазон не входит), на выходе — генерирует целые псевдослучайные числа в его пределах.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c10792137157" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c10792137157-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c10792137157-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c10792137157-1"><span class="crayon-c"># при заданных границах от 0 до 2 функция генерирует 0 и 1</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c10792137157-2"><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">randint</span><span class="crayon-sy">(</span><span class="crayon-cn">0</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">2</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0003 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c27607029828" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c27607029828-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c27607029828-1">1</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Передав этой функции третий параметр, мы можем указать количество таких чисел.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c29988663288" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c29988663288-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c29988663288-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c29988663288-1"><span class="crayon-c"># по сути, мы имитируем десять подбрасываний</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c29988663288-2"><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">randint</span><span class="crayon-sy">(</span><span class="crayon-cn">0</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">2</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">10</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c2a758142117" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c2a758142117-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c2a758142117-1">array([0, 1, 1, 0, 1, 1, 1, 1, 0, 0])</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <h3 class="wp-block-heading" id="7-brosanie-igralnoy-kosti">Бросание игральной кости</h3> <p>Бросание игральной кости можно имиритировать, изменив диапазон на [1, 7).</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c2b317055246" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c2b317055246-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c2b317055246-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c2b317055246-1"><span class="crayon-c"># аналогично имитируем десять бросков</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c2b317055246-2"><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">randint</span><span class="crayon-sy">(</span><span class="crayon-cn">1</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">7</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">10</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c2c848374188" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c2c848374188-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c2c848374188-1">array([6, 4, 2, 6, 6, 5, 4, 5, 5, 1])</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <h3 class="wp-block-heading" id="8-metod-monte-karlo">Метод Монте-Карло</h3> <p>Теперь давайте вернемся к Закону больших чисел. Для его проверки воспользуемся методом Монте-Карло.</p> <p class="has-background" style="background-color:#ffe8c4">Метод Монте-Карло позволяет исследовать какой-либо случайный процесс, многократно имитируя его с помощью компьютера.</p> <p>В нашем случае мы будем многократно бросать игральную кость и для каждой серии испытаний рассчитывать эмпирическую вероятность выпадения двойки или тройки. Если с ростом количества испытаний в серии эмпирическая вероятность приблизится к теоретической, мы сможем подтвердить Закон больших чисел.</p> <p>Будем создавать нашу программу поэтапно.</p> <h4 class="wp-block-heading" id="9-shag-1-metod-monte-karlo">Шаг 1. Метод Монте-Карло</h4> <p>Вначале нам потребуется список серий с количеством испытаний в каждой из них. Причем для наглядности пусть количество испытаний от серии к серии увеличивается экспоненциально.</p> <p>Создать такой список, вернее массив Numpy, можно с помощью функции <strong>np.logspace()</strong>. Она похожа на уже изученную нами <a href="https://www.dmitrymakarov.ru/python/numpy-09/#17-funktsiya-nplinspace">функцию np.linspace()</a> с той лишь разницей, что возвращает заданное количество чисел, которые равномерно распределены по <em>логарифмической шкале</em> в пределах заданного диапазона.</p> <p>Пусть наша последовательность будет состоять из чисел 10, возведенных в степень от 1 до 6. То есть первым числом будет $10^1 = 10$, а последним $10^6 = 1 000 000$. Всего таких чисел будет 50 (значение функции <strong>np.logspace()</strong> по умолчанию).</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c2d903226301" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c2d903226301-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c2d903226301-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c2d903226301-3">3</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c2d903226301-1"><span class="crayon-c"># параметр dtype = 'int' позволит отбросить дробную часть</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c2d903226301-2"><span class="crayon-v">series</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-e">logspace</span><span class="crayon-sy">(</span><span class="crayon-cn">1</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">6</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">dtype</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'int'</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c2d903226301-3"><span class="crayon-v">series</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c31766455172" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c31766455172-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c31766455172-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c31766455172-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c31766455172-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c31766455172-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c31766455172-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c31766455172-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c31766455172-8">8</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c31766455172-1">array([ 10, 12, 15, 20, 25, 32, 40,</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c31766455172-2"> 51, 65, 82, 104, 132, 167, 212,</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c31766455172-3"> 268, 339, 429, 542, 686, 868, 1098,</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c31766455172-4"> 1389, 1757, 2222, 2811, 3556, 4498, 5689,</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c31766455172-5"> 7196, 9102, 11513, 14563, 18420, 23299, 29470,</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c31766455172-6"> 37275, 47148, 59636, 75431, 95409, 120679, 152641,</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c31766455172-7"> 193069, 244205, 308884, 390693, 494171, 625055, 790604,</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c31766455172-8"> 1000000])</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <p>Промежуточные числа Numpy рассчитает самостоятельно с помощью десятичного логарифма. Например, для получения числа 790604 мы возвели 10 в степень 5.897959007291967.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c32923038044" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c32923038044-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c32923038044-1"><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-e">log10</span><span class="crayon-sy">(</span><span class="crayon-cn">790604</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c35851712617" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c35851712617-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c35851712617-1">5.897959007291967</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Убедимся в верности вычислений.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c36727625404" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c36727625404-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c36727625404-1"><span class="crayon-cn">10</span><span class="crayon-h"> </span><span class="crayon-o">*</span><span class="crayon-o">*</span><span class="crayon-h"> </span><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-e">log10</span><span class="crayon-sy">(</span><span class="crayon-cn">790604</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c37963202322" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c37963202322-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c37963202322-1">790604.0000000002</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>На графике такая последовательность демонстрирует экспоненциальный рост.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c38750133511" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c38750133511-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c38750133511-1"><span class="crayon-v">plt</span><span class="crayon-sy">.</span><span class="crayon-e">plot</span><span class="crayon-sy">(</span><span class="crayon-v">series</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <figure class="wp-block-image size-full"><img decoding="async" width="372" height="259" src="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/log-series.png" alt="функция np.linspace()" class="wp-image-10202" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/log-series.png 372w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/log-series-300x209.png 300w" sizes="(max-width: 372px) 100vw, 372px" /></figure> <p>Ровно то, что нам нужно.</p> <h4 class="wp-block-heading" id="10-shag-2-napishem-kod-dlya-provedeniya-ispytaniy">Шаг 2. Напишем код для проведения испытаний</h4> <p>Используем два цикла:</p> <ul class="wp-block-list"> <li>С помощью первого (внешнего) цикла for мы можем имитировать серии бросков (всего 50 испытаний).</li> <li>Второй (внутренний) цикл отвечает за броски каждой отдельной серии. В первый раз мы бросим кость 10 раз, во второй — 12 и так далее.</li> </ul> <p>Пока ограничимся одной серией. Для этого в конце внешнего цикла поставим <a href="https://www.dmitrymakarov.ru/python/if-and-loops-03/#9-operator-break">оператор break</a>.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c39858868579" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-15">15</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-16">16</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-17">17</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-18">18</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-19">19</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c39858868579-20">20</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-1"><span class="crayon-c"># обозначим точку отсчета</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-2"><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">seed</span><span class="crayon-sy">(</span><span class="crayon-cn">42</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-3"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-4"><span class="crayon-c"># во внешнем цикле пройдемся по сериям испытаний (их будет 50)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-5"><span class="crayon-st">for</span><span class="crayon-h"> </span><span class="crayon-v">i</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-e">trial </span><span class="crayon-st">in</span><span class="crayon-h"> </span><span class="crayon-k ">enumerate</span><span class="crayon-sy">(</span><span class="crayon-v">series</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">1</span><span class="crayon-sy">)</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-6"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-7"><span class="crayon-h"> </span><span class="crayon-c"># выведем серию и количество бросков внутри нее</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-8"><span class="crayon-h"> </span><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-i">f</span><span class="crayon-s">'Серия: {i}, количество испытаний: {trial}\n'</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-9"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-10"><span class="crayon-h"> </span><span class="crayon-c"># во внутреннем цикле будем бросать кость</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-11"><span class="crayon-h"> </span><span class="crayon-st">for</span><span class="crayon-h"> </span><span class="crayon-i">n</span><span class="crayon-h"> </span><span class="crayon-st">in</span><span class="crayon-h"> </span><span class="crayon-k ">range</span><span class="crayon-sy">(</span><span class="crayon-v">trial</span><span class="crayon-sy">)</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-12"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-13"><span class="crayon-h"> </span><span class="crayon-c"># запишем результат каждого броска</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-14"><span class="crayon-h"> </span><span class="crayon-v">result</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">randint</span><span class="crayon-sy">(</span><span class="crayon-cn">1</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">7</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-15"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-16"><span class="crayon-h"> </span><span class="crayon-c"># выведем номер броска и соответствующий результат</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-17"><span class="crayon-h"> </span><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-i">f</span><span class="crayon-s">'Испытание: {n}, выпало число: {result}'</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-18"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-19"><span class="crayon-h"> </span><span class="crayon-c"># прервемся после первой серии</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c39858868579-20"><span class="crayon-h"> </span><span class="crayon-st">break</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0006 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c3a186143288" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3a186143288-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3a186143288-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3a186143288-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3a186143288-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3a186143288-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3a186143288-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3a186143288-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3a186143288-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3a186143288-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3a186143288-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3a186143288-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3a186143288-12">12</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3a186143288-1">Серия: 1, количество испытаний: 10</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3a186143288-2"> </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3a186143288-3">Испытание: 0, выпало число: 4</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3a186143288-4">Испытание: 1, выпало число: 5</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3a186143288-5">Испытание: 2, выпало число: 3</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3a186143288-6">Испытание: 3, выпало число: 5</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3a186143288-7">Испытание: 4, выпало число: 5</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3a186143288-8">Испытание: 5, выпало число: 2</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3a186143288-9">Испытание: 6, выпало число: 3</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3a186143288-10">Испытание: 7, выпало число: 3</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3a186143288-11">Испытание: 8, выпало число: 3</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3a186143288-12">Испытание: 9, выпало число: 5</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <h4 class="wp-block-heading" id="11-shag-3-rasschitaem-dolyu-uspeshnykh-ispytaniy">Шаг 3. Рассчитаем долю успешных испытаний</h4> <p>Создадим счетчик, в который будем записывать выпадения двойки или тройки. После окончания очередной серии испытаний разделим количество успешных бросков на общее количество испытаний.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c3d532067469" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-15">15</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-16">16</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-17">17</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-18">18</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-19">19</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-20">20</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-21">21</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-22">22</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-23">23</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-24">24</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-25">25</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-26">26</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3d532067469-27">27</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-1"><span class="crayon-c"># обозначим точку отсчета</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-2"><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">seed</span><span class="crayon-sy">(</span><span class="crayon-cn">42</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-3"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-4"><span class="crayon-c"># создадим счетчик для количества успешных испытаний</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-5"><span class="crayon-v">success</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">0</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-6"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-7"><span class="crayon-c"># в двух циклах пройдемся по сериям и броскам в каждой серии</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-8"><span class="crayon-st">for</span><span class="crayon-h"> </span><span class="crayon-e">trial </span><span class="crayon-st">in</span><span class="crayon-h"> </span><span class="crayon-v">series</span><span class="crayon-o">:</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-9"><span class="crayon-h"> </span><span class="crayon-st">for</span><span class="crayon-h"> </span><span class="crayon-i">n</span><span class="crayon-h"> </span><span class="crayon-st">in</span><span class="crayon-h"> </span><span class="crayon-k ">range</span><span class="crayon-sy">(</span><span class="crayon-v">trial</span><span class="crayon-sy">)</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-10"><span class="crayon-h"> </span><span class="crayon-v">result</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">randint</span><span class="crayon-sy">(</span><span class="crayon-cn">1</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">7</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-11"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-12"><span class="crayon-h"> </span><span class="crayon-c"># если результат будет равен двум или трем</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-13"><span class="crayon-h"> </span><span class="crayon-st">if</span><span class="crayon-h"> </span><span class="crayon-v">result</span><span class="crayon-h"> </span><span class="crayon-o">==</span><span class="crayon-h"> </span><span class="crayon-cn">2</span><span class="crayon-h"> </span><span class="crayon-st">or</span><span class="crayon-h"> </span><span class="crayon-v">result</span><span class="crayon-h"> </span><span class="crayon-o">==</span><span class="crayon-h"> </span><span class="crayon-cn">3</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-14"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-15"><span class="crayon-h"> </span><span class="crayon-c"># обновим счетчик</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-16"><span class="crayon-h"> </span><span class="crayon-v">success</span><span class="crayon-h"> </span><span class="crayon-o">+=</span><span class="crayon-h"> </span><span class="crayon-cn">1</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-17"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-18"><span class="crayon-h"> </span><span class="crayon-c"># в конце каждой серии посчитаем долю успешных испытаний</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-19"><span class="crayon-h"> </span><span class="crayon-v">prob</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">success</span><span class="crayon-h"> </span><span class="crayon-o">/</span><span class="crayon-h"> </span><span class="crayon-e">trial</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-20"><span class="crayon-e"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-21"><span class="crayon-e"> </span><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-i">f</span><span class="crayon-s">'Серия: {i}\n'</span><span class="crayon-sy">)</span><span class="crayon-h"> </span><span class="crayon-c"># и выведем номер серии, </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-22"><span class="crayon-h"> </span><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-i">f</span><span class="crayon-s">'Всего испытаний: {trial}'</span><span class="crayon-sy">)</span><span class="crayon-h"> </span><span class="crayon-c"># общее количество испытаний,</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-23"><span class="crayon-h"> </span><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-i">f</span><span class="crayon-s">'Успешных исходов: {success}'</span><span class="crayon-sy">)</span><span class="crayon-h"> </span><span class="crayon-c"># количество и</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-24"><span class="crayon-h"> </span><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-i">f</span><span class="crayon-s">'Эмпирическая вероятность: {prob}'</span><span class="crayon-sy">)</span><span class="crayon-h"> </span><span class="crayon-c"># долю успешных испытаний</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-25"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-26"><span class="crayon-h"> </span><span class="crayon-c"># прервемся после окончания первой серии</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3d532067469-27"><span class="crayon-h"> </span><span class="crayon-st">break</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0008 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c3e590804229" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3e590804229-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3e590804229-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3e590804229-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3e590804229-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3e590804229-5">5</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3e590804229-1">Серия: 1</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3e590804229-2"> </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3e590804229-3">Всего испытаний: 10</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3e590804229-4">Успешных исходов: 5</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3e590804229-5">Эмпирическая вероятность: 0.5</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Обратите внимание, эмпирическая вероятность первой серии, в которой было только 10 бросков (1/2), далека от теоретической (1/3).</p> <h4 class="wp-block-heading" id="12-shag-4-provedem-polnotsennye-ispytaniya-algoritma">Шаг 4. Проведем полноценные испытания алгоритма</h4> <p>Теперь мы готовы протестировать наш алгоритм на всех 50-ти сериях. Дополним наш код списком, в который мы будем записывать долю успешных бросков (эмпирическую вероятность) в каждой серии.</p> <p>Помимо этого будем замерять время исполнения кода с помощью <a href="https://www.dmitrymakarov.ru/python/npmath-10/#time">магической команды %%time</a>.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c3f916663577" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-15">15</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-16">16</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-17">17</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-18">18</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-19">19</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-20">20</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-21">21</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-22">22</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-23">23</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-24">24</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-25">25</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-26">26</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-27">27</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-28">28</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-29">29</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-30">30</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-31">31</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-32">32</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-33">33</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-34">34</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-35">35</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-36">36</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c3f916663577-37">37</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-1"><span class="crayon-c"># замерим время исполнения ячейки</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-2"><span class="crayon-ta">%</span><span class="crayon-o">%</span><span class="crayon-t">time</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-3"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-4"><span class="crayon-c"># обозначим точку отсчета</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-5"><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">seed</span><span class="crayon-sy">(</span><span class="crayon-cn">42</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-6"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-7"><span class="crayon-c"># создадим счетчик для испытаний в каждой серии</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-8"><span class="crayon-v">success</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">0</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-9"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-10"><span class="crayon-c"># а также список для записи результатов в пределах одной серии</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-11"><span class="crayon-v">prob_list</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-sy">[</span><span class="crayon-sy">]</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-12"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-13"><span class="crayon-c"># пройдемся по сериям</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-14"><span class="crayon-st">for</span><span class="crayon-h"> </span><span class="crayon-e">trial </span><span class="crayon-st">in</span><span class="crayon-h"> </span><span class="crayon-v">series</span><span class="crayon-o">:</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-15"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-16"><span class="crayon-h"> </span><span class="crayon-c"># и броскам в каждой серии</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-17"><span class="crayon-h"> </span><span class="crayon-st">for</span><span class="crayon-h"> </span><span class="crayon-i">n</span><span class="crayon-h"> </span><span class="crayon-st">in</span><span class="crayon-h"> </span><span class="crayon-k ">range</span><span class="crayon-sy">(</span><span class="crayon-v">trial</span><span class="crayon-sy">)</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-18"><span class="crayon-h"> </span><span class="crayon-v">result</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">randint</span><span class="crayon-sy">(</span><span class="crayon-cn">1</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">7</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-19"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-20"><span class="crayon-h"> </span><span class="crayon-c"># посчитаем количество успешных бросков</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-21"><span class="crayon-h"> </span><span class="crayon-st">if</span><span class="crayon-h"> </span><span class="crayon-v">result</span><span class="crayon-h"> </span><span class="crayon-o">==</span><span class="crayon-h"> </span><span class="crayon-cn">2</span><span class="crayon-h"> </span><span class="crayon-st">or</span><span class="crayon-h"> </span><span class="crayon-v">result</span><span class="crayon-h"> </span><span class="crayon-o">==</span><span class="crayon-h"> </span><span class="crayon-cn">3</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-22"><span class="crayon-h"> </span><span class="crayon-v">success</span><span class="crayon-h"> </span><span class="crayon-o">+=</span><span class="crayon-h"> </span><span class="crayon-cn">1</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-23"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-24"><span class="crayon-h"> </span><span class="crayon-c"># вычислим долю успешных бросков</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-25"><span class="crayon-h"> </span><span class="crayon-v">prob</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">success</span><span class="crayon-h"> </span><span class="crayon-o">/</span><span class="crayon-h"> </span><span class="crayon-i">trial</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-26"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-27"><span class="crayon-h"> </span><span class="crayon-c"># добавим результат серии в список</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-28"><span class="crayon-h"> </span><span class="crayon-v">prob_list</span><span class="crayon-sy">.</span><span class="crayon-e">append</span><span class="crayon-sy">(</span><span class="crayon-v">prob</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-29"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-30"><span class="crayon-h"> </span><span class="crayon-c"># обнулим счетчик для записи результата следующей серии</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-31"><span class="crayon-h"> </span><span class="crayon-v">success</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">0</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-32"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-33"><span class="crayon-c"># после проведения всех серий испытаний выведем их количество</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-34"><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-i">f</span><span class="crayon-s">'Проведено серий испытаний: {len(prob_list)}'</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-35"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-36"><span class="crayon-c"># а также эмпирическую вероятность отдельных серий</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c3f916663577-37"><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-i">f</span><span class="crayon-s">'Эмпирическая вероятность каждой пятой серии: {np.round(prob_list[::5], 2)}'</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0042 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c42087135836" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c42087135836-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c42087135836-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c42087135836-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c42087135836-4">4</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c42087135836-1">Проведено серий испытаний: 50</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c42087135836-2">Эмпирическая вероятность каждой пятой серии: [0.5 0.22 0.34 0.37 0.34 0.33 0.34 0.34 0.33 0.33]</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c42087135836-3">CPU times: user 21.5 s, sys: 51.1 ms, total: 21.5 s</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c42087135836-4">Wall time: 26 s</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Общее время выполнения кода составило 26 секунд.</p> <h4 class="wp-block-heading" id="13-shag-5-otsenim-rezultat-vizualno">Шаг 5. Оценим результат визуально</h4> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c43098999275" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c43098999275-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c43098999275-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c43098999275-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c43098999275-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c43098999275-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c43098999275-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c43098999275-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c43098999275-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c43098999275-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c43098999275-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c43098999275-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c43098999275-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c43098999275-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c43098999275-14">14</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c43098999275-1"><span class="crayon-c"># зададим размер графика</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c43098999275-2"><span class="crayon-v">plt</span><span class="crayon-sy">.</span><span class="crayon-e">figure</span><span class="crayon-sy">(</span><span class="crayon-v">figsize</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-sy">(</span><span class="crayon-cn">10</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">8</span><span class="crayon-sy">)</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c43098999275-3"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c43098999275-4"><span class="crayon-c"># выведем горизонтальную линию теоретической вероятности</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c43098999275-5"><span class="crayon-v">plt</span><span class="crayon-sy">.</span><span class="crayon-e">axhline</span><span class="crayon-sy">(</span><span class="crayon-v">y</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">1</span><span class="crayon-o">/</span><span class="crayon-cn">3</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">c</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'r'</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c43098999275-6"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c43098999275-7"><span class="crayon-c"># а также эмпирическую вероятность по результатам 50-ти серий испытаний</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c43098999275-8"><span class="crayon-v">plt</span><span class="crayon-sy">.</span><span class="crayon-e">plot</span><span class="crayon-sy">(</span><span class="crayon-v">prob_list</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c43098999275-9"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c43098999275-10"><span class="crayon-c"># добавим подписи</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c43098999275-11"><span class="crayon-v">plt</span><span class="crayon-sy">.</span><span class="crayon-e">xlabel</span><span class="crayon-sy">(</span><span class="crayon-s">'Серии'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">fontsize</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">16</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c43098999275-12"><span class="crayon-v">plt</span><span class="crayon-sy">.</span><span class="crayon-e">ylabel</span><span class="crayon-sy">(</span><span class="crayon-s">'Вероятность'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">fontsize</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">16</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c43098999275-13"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c43098999275-14"><span class="crayon-v">plt</span><span class="crayon-sy">.</span><span class="crayon-e">show</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0005 seconds] --> </div> <figure class="wp-block-image size-full"><img decoding="async" width="620" height="485" src="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/mcresults.png" alt="метод Монте-Карло" class="wp-image-10221" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/mcresults.png 620w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/mcresults-300x235.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/mcresults-600x469.png 600w" sizes="(max-width: 620px) 100vw, 620px" /></figure> <p>Как мы видим, если в первых сериях эмпирическая вероятность довольно сильно отличалась от теоретической, с увеличением количества бросков она вплотную приблизилась к 1/3.</p> <p>Мы убедились в верности Закона больших чисел с помощью метода Монте-Карло.</p> <h4 class="wp-block-heading" id="14-primer-vektorizovannogo-koda">Пример векторизованного кода</h4> <p>На прошлом занятии мы поговорили про <a href="https://www.dmitrymakarov.ru/python/npmath-10/#11-vektorizatsiya">векторизацию кода</a> и выяснили, что векторизованный код исполняется быстрее, чем циклы for. Давайте посмотрим, нет ли возможности оптимизировать код с двумя циклами, написанный ранее.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c44483863643" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-15">15</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-16">16</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-17">17</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-18">18</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-19">19</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-20">20</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-21">21</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c44483863643-22">22</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-1"><span class="crayon-ta">%</span><span class="crayon-o">%</span><span class="crayon-t">time</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-2"><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">seed</span><span class="crayon-sy">(</span><span class="crayon-cn">42</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-3"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-4"><span class="crayon-c"># создадим новый список для записи результатов </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-5"><span class="crayon-v">prob_list_2</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-sy">[</span><span class="crayon-sy">]</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-6"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-7"><span class="crayon-c"># пройдемся по каждой из 50-ти серий</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-8"><span class="crayon-st">for</span><span class="crayon-h"> </span><span class="crayon-e">trial </span><span class="crayon-st">in</span><span class="crayon-h"> </span><span class="crayon-v">series</span><span class="crayon-o">:</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-9"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-10"><span class="crayon-h"> </span><span class="crayon-c"># вместо второго цикла, передадим количество бросков </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-11"><span class="crayon-h"> </span><span class="crayon-c"># непосредственно в функцию np.random.randint() через переменную trial</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-12"><span class="crayon-h"> </span><span class="crayon-c"># и запишем полученные данные в массив result</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-13"><span class="crayon-h"> </span><span class="crayon-v">result</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">randint</span><span class="crayon-sy">(</span><span class="crayon-cn">1</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">7</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">trial</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-14"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-15"><span class="crayon-h"> </span><span class="crayon-c"># в переменную success запишем сумму выпавших двоек или троек из массива result</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-16"><span class="crayon-h"> </span><span class="crayon-v">success</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-sy">(</span><span class="crayon-v">result</span><span class="crayon-h"> </span><span class="crayon-o">==</span><span class="crayon-h"> </span><span class="crayon-cn">2</span><span class="crayon-sy">)</span><span class="crayon-sy">.</span><span class="crayon-k ">sum</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span><span class="crayon-h"> </span><span class="crayon-o">+</span><span class="crayon-h"> </span><span class="crayon-sy">(</span><span class="crayon-v">result</span><span class="crayon-h"> </span><span class="crayon-o">==</span><span class="crayon-h"> </span><span class="crayon-cn">3</span><span class="crayon-sy">)</span><span class="crayon-sy">.</span><span class="crayon-k ">sum</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-17"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-18"><span class="crayon-h"> </span><span class="crayon-c"># посчитаем долю успешных исходов</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-19"><span class="crayon-h"> </span><span class="crayon-v">prob</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">success</span><span class="crayon-h"> </span><span class="crayon-o">/</span><span class="crayon-h"> </span><span class="crayon-i">trial</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-20"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-21"><span class="crayon-h"> </span><span class="crayon-c"># и запишем ее в список</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c44483863643-22"><span class="crayon-h"> </span><span class="crayon-v">prob_list_2</span><span class="crayon-sy">.</span><span class="crayon-e">append</span><span class="crayon-sy">(</span><span class="crayon-v">prob</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0006 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c48809440758" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c48809440758-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c48809440758-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c48809440758-1">CPU times: user 77.1 ms, sys: 8.99 ms, total: 86 ms</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c48809440758-2">Wall time: 87.1 ms</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Векторизованный код исполнился за 87,1 миллисекунды, то есть почти в 321 раз (26/0,081) быстрее, чем без использования векторизации.</p> <p>Убедимся, что результат идентичен.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c49202373683" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c49202373683-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c49202373683-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c49202373683-1"><span class="crayon-c"># разумеется, он будет одинаковым, если задать одну и ту же точку отсчета</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c49202373683-2"><span class="crayon-v">prob_list</span><span class="crayon-h"> </span><span class="crayon-o">==</span><span class="crayon-h"> </span><span class="crayon-v">prob_list_2</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c4a112630589" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4a112630589-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4a112630589-1">True</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <h3 class="wp-block-heading" id="15-zadacha-o-dvukh-konvertakh">Задача о двух конвертах</h3> <p>Задача о двух конвертах (two envelopes problem) — популярная задача из области теории вероятностей. Сегодня мы рассмотрим один из ее вариантов и смоделируем решение с помощью модуля random.</p> <p>Представьте, что вам дали конверт A, вы открыли его и увидели сумму X. После этого вам предлагают заменить этот конверт на другой конверт B, сумма в котором с одинаковой вероятностью либо в два раза меньше, либо в два раза больше суммы X. Стоит ли вам заменить конверт с A на B?</p> <div class="wp-block-image"> <figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="844" height="294" src="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/two-envelopes-problem.png" alt="задача о двух конвертах" class="wp-image-10269" style="width:599px;height:208px" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/two-envelopes-problem.png 844w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/two-envelopes-problem-300x105.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/two-envelopes-problem-768x268.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/two-envelopes-problem-600x209.png 600w" sizes="(max-width: 844px) 100vw, 844px" /></figure></div> <h4 class="wp-block-heading" id="16-analiticheskoe-reshenie">Аналитическое решение</h4> <p>Решим задачу аналитически. Пусть суммы в конверте B могут быть равны X/2 и 2X, тогда в среднем результат замены конвертов составит</p> <p>$$ \frac{1}{2} \left( \frac{X}{2} \right) + \frac{1}{2} \left( 2X \right) = \frac{5}{4}X $$</p> <p>Это больше, чем изначальная сумма X в конверте A, а значит нам стоит взять конверт B.</p> <p>Теперь рассмотрим конкретный пример. Предположим, что в открытом нами конверте A было 5000 рублей, тогда в среднем при замене конвертов мы получим</p> <p>$$ \frac{1}{2} \left( \frac{5000}{2} \right) + \frac{1}{2} \left( 2 \cdot 5000 \right) = \frac{5}{4} \cdot 5000 = 6250 $$</p> <h4 class="wp-block-heading" id="17-modelirovanie-s-pomoshchyu-modulya-random">Моделирование с помощью модуля random</h4> <p>Проверим это решение с помощью Питона и Закона больших чисел.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c4b664504054" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-15">15</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-16">16</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-17">17</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-18">18</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-19">19</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-20">20</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-21">21</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-22">22</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-23">23</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-24">24</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-25">25</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-26">26</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-27">27</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c4b664504054-28">28</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-1"><span class="crayon-c"># зададим точку отсчета и</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-2"><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">seed</span><span class="crayon-sy">(</span><span class="crayon-cn">50</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-3"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-4"><span class="crayon-c"># количество испытаний</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-5"><span class="crayon-v">trials</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">100000</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-6"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-7"><span class="crayon-c"># создадим список для записи результатов</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-8"><span class="crayon-v">outcomes</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-sy">[</span><span class="crayon-sy">]</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-9"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-10"><span class="crayon-c"># с помощью цикла for</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-11"><span class="crayon-st">for</span><span class="crayon-h"> </span><span class="crayon-e">trial </span><span class="crayon-st">in</span><span class="crayon-h"> </span><span class="crayon-k ">range</span><span class="crayon-sy">(</span><span class="crayon-v">trials</span><span class="crayon-sy">)</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-12"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-13"><span class="crayon-h"> </span><span class="crayon-c"># будем с одинаковой вероятностью генерировать числа 0 и 1</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-14"><span class="crayon-h"> </span><span class="crayon-v">outcome</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">randint</span><span class="crayon-sy">(</span><span class="crayon-cn">0</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">2</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-15"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-16"><span class="crayon-h"> </span><span class="crayon-c"># если выпадет ноль, то мы получим 2500 рублей</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-17"><span class="crayon-h"> </span><span class="crayon-st">if</span><span class="crayon-h"> </span><span class="crayon-v">outcome</span><span class="crayon-h"> </span><span class="crayon-o">==</span><span class="crayon-h"> </span><span class="crayon-cn">0</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-18"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-19"><span class="crayon-h"> </span><span class="crayon-c"># запишем этот результат в список</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-20"><span class="crayon-h"> </span><span class="crayon-v">outcomes</span><span class="crayon-sy">.</span><span class="crayon-e">append</span><span class="crayon-sy">(</span><span class="crayon-cn">2500</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-21"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-22"><span class="crayon-h"> </span><span class="crayon-st">else</span><span class="crayon-o">:</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-23"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-24"><span class="crayon-h"> </span><span class="crayon-c"># в противном случае, запишем 10000</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-25"><span class="crayon-h"> </span><span class="crayon-v">outcomes</span><span class="crayon-sy">.</span><span class="crayon-e">append</span><span class="crayon-sy">(</span><span class="crayon-cn">10000</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-26"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-27"><span class="crayon-c"># посчитаем среднее значение</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c4b664504054-28"><span class="crayon-k ">sum</span><span class="crayon-sy">(</span><span class="crayon-v">outcomes</span><span class="crayon-sy">)</span><span class="crayon-o">/</span><span class="crayon-k ">len</span><span class="crayon-sy">(</span><span class="crayon-v">outcomes</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0006 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c4f277093222" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c4f277093222-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c4f277093222-1">6249.475</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Как мы видим, компьютер подтвердил, что в среднем (при достаточном количестве испытаний) будет выгоднее заменить конверт A на конверт B.</p> <h4 class="wp-block-heading" id="18-paradoks-dvukh-konvertov">Парадокс двух конвертов</h4> <p>Добавлю, что если изменить условие задачи и не открывать конверт A, то задача превратится в <strong>парадокс двух конвертов</strong> (two envelopes paradox). Ведь если в среднем выгоднее заменить конверт A на B, то будет выгодно и обратное действие (заменить B на A).</p> <p>Такой обмен конвертами может длиться бесконечно, а это приводит к противоречию поскольку выше мы доказали, что изначальная замена конверта A на B более выгодна.</p> <p>Рассмотрение этого парадокса выходит за рамки сегодняшнего занятия.</p> <h3 class="wp-block-heading" id="19-metod-sluchaynykh-bluzhdaniy">Метод случайных блужданий</h3> <p>Генератор случайных чисел также применяется в так называемом <strong>методе случайных блужданий</strong> (random walk models, random walkers). С его помощью мы можем конструировать путь, состоящий из последовательности случайных шагов в определенном пространстве и, таким образом, моделировать различные процессы.</p> <h4 class="wp-block-heading" id="20-sluchaynoe-bluzhdanie-po-chislovoy-pryamoy">Случайное блуждание по числовой прямой</h4> <p>В самом простом варианте мы будем подбрасывать монету и смотреть, куда мы сдвинулись относительно предыдущего шага на числовой прямой. Посмотрим на алгоритм.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c50721852044" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-15">15</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-16">16</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-17">17</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-18">18</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-19">19</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-20">20</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c50721852044-21">21</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-1"><span class="crayon-c"># поставим точку отсчета</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-2"><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">seed</span><span class="crayon-sy">(</span><span class="crayon-cn">2</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-3"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-4"><span class="crayon-c"># создадим список и запишем в него исходную позицию</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-5"><span class="crayon-v">moves</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-sy">[</span><span class="crayon-cn">0</span><span class="crayon-sy">]</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-6"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-7"><span class="crayon-c"># для наглядности запишем результат бросания монеты</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-8"><span class="crayon-v">coins</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-sy">[</span><span class="crayon-sy">]</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-9"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-10"><span class="crayon-st">for</span><span class="crayon-h"> </span><span class="crayon-i">x</span><span class="crayon-h"> </span><span class="crayon-st">in</span><span class="crayon-h"> </span><span class="crayon-k ">range</span><span class="crayon-sy">(</span><span class="crayon-cn">5</span><span class="crayon-sy">)</span><span class="crayon-o">:</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-11"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-12"><span class="crayon-h"> </span><span class="crayon-c"># в цикле подбросим монету</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-13"><span class="crayon-h"> </span><span class="crayon-v">coin</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">randint</span><span class="crayon-sy">(</span><span class="crayon-cn">0</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">2</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-14"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-15"><span class="crayon-h"> </span><span class="crayon-c"># если выпадет 1, сдвинемся на одно значение от предыдущего результата</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-16"><span class="crayon-h"> </span><span class="crayon-c"># если выпадет 0, останемся на месте</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-17"><span class="crayon-h"> </span><span class="crayon-c"># запишем результат в список moves</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-18"><span class="crayon-h"> </span><span class="crayon-v">moves</span><span class="crayon-sy">.</span><span class="crayon-e">append</span><span class="crayon-sy">(</span><span class="crayon-v">moves</span><span class="crayon-sy">[</span><span class="crayon-v">x</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-o">+</span><span class="crayon-h"> </span><span class="crayon-v">coin</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-19"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-20"><span class="crayon-h"> </span><span class="crayon-c"># также запишем результат подбрасывания монеты</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c50721852044-21"><span class="crayon-h"> </span><span class="crayon-v">coins</span><span class="crayon-sy">.</span><span class="crayon-e">append</span><span class="crayon-sy">(</span><span class="crayon-v">coin</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0005 seconds] --> </div> <p>Выведем сделанные шаги.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c54932088063" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c54932088063-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c54932088063-1"><span class="crayon-v">moves</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c57341427313" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c57341427313-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c57341427313-1">[0, 0, 1, 2, 2, 2]</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>И то, какой результат мы получали при подбрасывании монеты.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c58644680429" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c58644680429-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c58644680429-1"><span class="crayon-v">coins</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c59662455935" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c59662455935-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c59662455935-1">[0, 1, 1, 0, 0]</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Для наглядности давайте посмотрим на сделанные шаги на числовой прямой.</p> <figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="393" src="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/random-walk-1024x393.jpg" alt="метод случайных блужданий" class="wp-image-10277" style="width:595px;height:228px" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/random-walk-1024x393.jpg 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/random-walk-300x115.jpg 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/random-walk-768x294.jpg 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/random-walk-1536x589.jpg 1536w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/random-walk-1200x460.jpg 1200w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/random-walk-600x230.jpg 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/random-walk.jpg 1860w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <p>Начальное положение ($s_0$) находится в точке ноль. При первом подбрасывании монеты выпадает 0, и на первом шаге ($s_1$) мы остаемся на месте. На втором шаге ($s_2$) выпадает единица, и мы сдвигаемся в точку один. На третьем шаге ($s_3$) мы перемещаемся в точку два. После этого, на шагах четыре ($s_4$) и пять ($s_5$) мы остаемся на месте.</p> <h4 class="wp-block-heading" id="21-doedem-li-my-iz-moskvy-do-sankt-peterburga">Доедем ли мы из Москвы до Санкт-Петербурга</h4> <figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="576" src="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/moscow_sp-1024x576.png" alt="метод случайных блужданий: путь от Москвы до Санкт-Петербурга" class="wp-image-10282" style="width:650px;height:365px" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/moscow_sp-1024x576.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/moscow_sp-300x169.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/moscow_sp-768x432.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/moscow_sp-600x337.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/moscow_sp.png 1188w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <p>Теперь усложним задачу и посмотрим, сможем ли мы добраться из Москвы до Санкт-Петербурга на довольно необычном транспортном средстве, движение которого зависит от бросания игральной кости. Условия следующие:</p> <ul class="wp-block-list"> <li>Нам нужно преодолеть ровно 700 километров;</li> <li>Если при бросании кости выпадет единица или двойка, мы сместимся на 5 километров вперед;</li> <li>Если тройка или четверка, то на 5 километров назад;</li> <li>В случае если выпадет пять или шесть, мы повторно бросим кость и сдвинемся на выпавшее число километров умноженное на пять;</li> <li>Кроме того, есть вероятность внезапной поломки. Она составляет менее 0,001, то есть менее 0,1%. В этом случае на эвакуаторе нас отвезут обратно в Москву для ремонта.</li> </ul> <p>Дополнительно договоримся, что в обратном направлении мы двигаться не можем, то есть если нам будет все время не везти, в минус мы не уйдем, число пройденных километров не должно быть отрицательным.</p> <p>Теперь давайте с помощью Питона построим такой механизм.</p> <ul class="wp-block-list"> <li>Как уже было сказано, для бросания игральной кости мы будем использовать функцию <strong>np.random.randint()</strong> с параметрами 1 и 7.</li> <li>Для того чтобы не уйти в минус, используем <strong>функцию max()</strong>. Первым параметром передадим 0, вторым — километр, на котором мы окажемся, если сдвинемся назад (то есть если выпадет твойка или четверка). В случае если второе число окажется отрицательным, то функция <strong>max(</strong>) выберет ноль.</li> <li>Поломку мы будем имитировать с помощью <strong>функции np.random.rand()</strong>. Эта функция генерирует равномерное распределение (об этом ниже) чисел в интервале [0, 1) и, если выпавшее число меньше, чем 0,001, мы вернемся в начало пути.</li> </ul> <p>Посмотрим на код.</p> <h4 class="wp-block-heading" id="22-funktsiya-sluchaynogo-bluzhdaniya">Функция случайного блуждания</h4> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c5a218661391" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-15">15</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-16">16</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-17">17</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-18">18</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-19">19</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-20">20</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-21">21</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-22">22</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-23">23</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-24">24</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-25">25</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-26">26</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-27">27</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-28">28</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-29">29</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-30">30</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-31">31</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-32">32</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-33">33</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-34">34</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-35">35</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-36">36</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5a218661391-37">37</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size: … [Строка слишком длинная. Вы можете скачать файл] </tr> </table> </div> </div> <!-- [Format Time: 0.0011 seconds] --> </div> <h4 class="wp-block-heading" id="23-sozdanie-odnogo-sluchaynogo-bluzhdaniya">Создание одного случайного блуждания</h4> <p>Вызовем эту функцию для генерации <em>одного</em> случайного блуждания.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c5e400496562" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5e400496562-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5e400496562-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5e400496562-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c5e400496562-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c5e400496562-5">5</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c5e400496562-1"><span class="crayon-c"># зададим точку отсчета</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c5e400496562-2"><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">seed</span><span class="crayon-sy">(</span><span class="crayon-cn">42</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c5e400496562-3"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c5e400496562-4"><span class="crayon-c"># вызовем функцию random_walk() и поместим результат в переменную rw</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c5e400496562-5"><span class="crayon-v">rw</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">random_walk</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <p>Выведем результат с помощью графика.</p> <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="375" height="248" src="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/random-walk-1.png" alt="одно случайное блуждание" class="wp-image-10290" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/random-walk-1.png 375w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/random-walk-1-300x198.png 300w" sizes="(max-width: 375px) 100vw, 375px" /></figure> <p>Посмотрим на расстояние, которое удалось преодолеть.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c61086141381" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c61086141381-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c61086141381-1"><span class="crayon-v">rw</span><span class="crayon-sy">[</span><span class="crayon-o">-</span><span class="crayon-cn">1</span><span class="crayon-sy">]</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c63492532734" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c63492532734-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c63492532734-1">430</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Очевидно в этот раз мы не смогли доехать до Санкт-Петербурга.</p> <h4 class="wp-block-heading" id="24-modelirovanie-neskolkikh-sluchaynykh-bluzhdaniy">Моделирование нескольких случайных блужданий</h4> <p>Давайте посмотрим на то, какова вероятность в среднем преодолеть этот путь.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c64961130106" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c64961130106-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c64961130106-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c64961130106-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c64961130106-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c64961130106-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c64961130106-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c64961130106-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c64961130106-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c64961130106-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c64961130106-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c64961130106-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c64961130106-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c64961130106-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c64961130106-14">14</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c64961130106-1"><span class="crayon-c"># установим точку отсчета</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c64961130106-2"><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">random</span><span class="crayon-sy">.</span><span class="crayon-e">seed</span><span class="crayon-sy">(</span><span class="crayon-cn">42</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c64961130106-3"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c64961130106-4"><span class="crayon-c"># создадим список, в который будем помещать отдельные случайные блуждания</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c64961130106-5"><span class="crayon-v">all_walks</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-sy">[</span><span class="crayon-sy">]</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c64961130106-6"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c64961130106-7"><span class="crayon-c"># в цикле из 1000 итераций</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c64961130106-8"><span class="crayon-st">for</span><span class="crayon-h"> </span><span class="crayon-k ">w</span><span class="crayon-h"> </span><span class="crayon-st">in</span><span class="crayon-h"> </span><span class="crayon-k ">range</span><span class="crayon-sy">(</span><span class="crayon-cn">1000</span><span class="crayon-sy">)</span><span class="crayon-o">:</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c64961130106-9"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c64961130106-10"><span class="crayon-h"> </span><span class="crayon-c"># сгенерируем случайное блуждание</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c64961130106-11"><span class="crayon-h"> </span><span class="crayon-v">rw</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">random_walk</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c64961130106-12"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c64961130106-13"><span class="crayon-h"> </span><span class="crayon-c"># и поместим его в список all_walks</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c64961130106-14"><span class="crayon-h"> </span><span class="crayon-v">all_walks</span><span class="crayon-sy">.</span><span class="crayon-e">append</span><span class="crayon-sy">(</span><span class="crayon-v">rw</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0003 seconds] --> </div> <p>В переменной <strong>all_walks</strong> содержится список из списков. Преобразуем его в массив Numpy и транспонируем, чтобы отдельные случайные блуждания стали столбцами.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c65055196050" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c65055196050-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c65055196050-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c65055196050-1"><span class="crayon-v">all_walks_T</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-k ">array</span><span class="crayon-sy">(</span><span class="crayon-v">all_walks</span><span class="crayon-sy">)</span><span class="crayon-sy">.</span><span class="crayon-i">T</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c65055196050-2"><span class="crayon-v">all_walks_T</span><span class="crayon-sy">.</span><span class="crayon-v">shape</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c66635243615" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c66635243615-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c66635243615-1">(100, 1000)</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Для наглядности мы можем использовать DataFrame <a href="https://www.dmitrymakarov.ru/intro/data-and-plots-07/#1-biblioteka-pandas">библиотеки Pandas</a>.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c68257540068" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c68257540068-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c68257540068-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c68257540068-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c68257540068-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c68257540068-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c68257540068-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c68257540068-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c68257540068-8">8</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c68257540068-1"><span class="crayon-c"># импортируем библиотеку Pandas</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c68257540068-2"><span class="crayon-r">import</span><span class="crayon-h"> </span><span class="crayon-e">pandas </span><span class="crayon-st">as</span><span class="crayon-h"> </span><span class="crayon-i">pd</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c68257540068-3"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c68257540068-4"><span class="crayon-c"># используем функцию pd.DataFrame()</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c68257540068-5"><span class="crayon-v">df</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">DataFrame</span><span class="crayon-sy">(</span><span class="crayon-v">all_walks_T</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c68257540068-6"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c68257540068-7"><span class="crayon-c"># и выведем последние пять строк</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c68257540068-8"><span class="crayon-v">df</span><span class="crayon-sy">.</span><span class="crayon-e">tail</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="840" height="398" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-10.png" alt="" class="wp-image-26458" style="width:498px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-10.png 840w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-10-300x142.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-10-768x364.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-10-600x284.png 600w" sizes="(max-width: 840px) 100vw, 840px" /></figure> <p>Первый столбец соответствует первому случайному блужданию и на шаге 100 (с индексом 99) мы достигли 430-ого километра.</p> <p>Выведем результат на графике.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c69000451712" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c69000451712-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c69000451712-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c69000451712-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c69000451712-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c69000451712-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c69000451712-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c69000451712-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c69000451712-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c69000451712-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c69000451712-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c69000451712-11">11</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c69000451712-1"><span class="crayon-c"># зададим размер графика</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c69000451712-2"><span class="crayon-v">plt</span><span class="crayon-sy">.</span><span class="crayon-e">figure</span><span class="crayon-sy">(</span><span class="crayon-v">figsize</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-sy">(</span><span class="crayon-cn">10</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">8</span><span class="crayon-sy">)</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c69000451712-3"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c69000451712-4"><span class="crayon-c"># и выведем каждое 30-ое блуждание</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c69000451712-5"><span class="crayon-v">plt</span><span class="crayon-sy">.</span><span class="crayon-e">plot</span><span class="crayon-sy">(</span><span class="crayon-v">all_walks_T</span><span class="crayon-sy">[</span><span class="crayon-o">:</span><span class="crayon-sy">,</span><span class="crayon-o">::</span><span class="crayon-cn">30</span><span class="crayon-sy">]</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c69000451712-6"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c69000451712-7"><span class="crayon-c"># добавим подписи</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c69000451712-8"><span class="crayon-v">plt</span><span class="crayon-sy">.</span><span class="crayon-e">xlabel</span><span class="crayon-sy">(</span><span class="crayon-s">'Бросание кости'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">fontsize</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">16</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c69000451712-9"><span class="crayon-v">plt</span><span class="crayon-sy">.</span><span class="crayon-e">ylabel</span><span class="crayon-sy">(</span><span class="crayon-s">'Пройденный путь, км'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">fontsize</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">16</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c69000451712-10"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c69000451712-11"><span class="crayon-v">plt</span><span class="crayon-sy">.</span><span class="crayon-e">show</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0004 seconds] --> </div> <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="617" height="485" src="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/all-walks-1.png" alt="несколько случайных блужданий (график)" class="wp-image-10296" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/all-walks-1.png 617w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/all-walks-1-300x236.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/all-walks-1-600x472.png 600w" sizes="(max-width: 617px) 100vw, 617px" /></figure> <p>Обратите внимание на «упавшие» кривые. Это как раз те случаи, когда наше воображаемое транспортное средство ломалось, и мы возвращались в Москву на ремонт.</p> <h4 class="wp-block-heading" id="25-veroyatnost-preodoleniya-puti">Вероятность преодоления пути</h4> <p>Теперь давайте возьмем достигнутые конечные точки каждого из 1000 испытаний и посмотрим на их распределение с помощью <a href="https://www.dmitrymakarov.ru/intro/stats-08/#3-2-kolichestvennye-dannye">гистограммы</a>.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c6a546079832" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c6a546079832-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c6a546079832-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c6a546079832-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c6a546079832-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c6a546079832-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da51bf2c6a546079832-6">6</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c6a546079832-1"><span class="crayon-c"># возьмем последнюю строку нашего массива</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c6a546079832-2"><span class="crayon-v">ends</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">all_walks_T</span><span class="crayon-sy">[</span><span class="crayon-o">-</span><span class="crayon-cn">1</span><span class="crayon-sy">,</span><span class="crayon-o">:</span><span class="crayon-sy">]</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c6a546079832-3"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c6a546079832-4"><span class="crayon-c"># и построим гистограмму с помощью plt.hist()</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c6a546079832-5"><span class="crayon-v">plt</span><span class="crayon-sy">.</span><span class="crayon-e">hist</span><span class="crayon-sy">(</span><span class="crayon-v">ends</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da51bf2c6a546079832-6"><span class="crayon-v">plt</span><span class="crayon-sy">.</span><span class="crayon-e">show</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="375" height="248" src="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/all-walks-hist.png" alt="несколько случайных блужданий (гистограмма)" class="wp-image-10298" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/all-walks-hist.png 375w, https://www.dmitrymakarov.ru/wp-content/uploads/2022/02/all-walks-hist-300x198.png 300w" sizes="(max-width: 375px) 100vw, 375px" /></figure> <p>Выясним, какое расстояние в среднем проезжало наше транспортное средство.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c6b318516819" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c6b318516819-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c6b318516819-1"><span class="crayon-v">ends</span><span class="crayon-sy">.</span><span class="crayon-e">mean</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c6e604842172" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c6e604842172-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c6e604842172-1">561.415</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Кроме того, мы можем рассчитать вероятность преодоления 700 км. Для этого с помощью функции <strong>np.count_nonzero()</strong> рассчитаем количество блужданий, преодолевших расстояние между двумя столицами, и разделим получившийся результат на общее количество испытаний.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c6f767896562" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c6f767896562-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c6f767896562-1"><span class="crayon-v">np</span><span class="crayon-sy">.</span><span class="crayon-e">count_nonzero</span><span class="crayon-sy">(</span><span class="crayon-v">ends</span><span class="crayon-h"> </span><span class="crayon-o">>=</span><span class="crayon-h"> </span><span class="crayon-cn">700</span><span class="crayon-sy">)</span><span class="crayon-o">/</span><span class="crayon-k ">len</span><span class="crayon-sy">(</span><span class="crayon-v">ends</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da51bf2c70411571802" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da51bf2c70411571802-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da51bf2c70411571802-1">0.128</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Транспортное средство не слишком надежно, лишь в 12,8% случаев мы доезжали до конечной точки.</p> <p><a href="https://www.dmitrymakarov.ru/python/random-11-02/">Продолжим</a> знакомиться с теорией вероятностей и параллельно изучать возможности модуля random.</p> </div> <!-- .content --> </div> <!-- .post --> <footer class="site-footer section-inner"> <!--<p class="copyright">© 2024 <a href="https://www.dmitrymakarov.ru" class="site-name">Машинное обучение</a></p>--> </footer> <!-- footer --> </main> <script type="text/javascript" src="//cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js?ver=6.6.2" id="mathjax-js"></script> <script type="text/javascript" src="https://www.dmitrymakarov.ru/wp-content/plugins/ultimate-blocks/src/blocks/table-of-contents/front.build.js?ver=3.2.2" id="ultimate_blocks-table-of-contents-front-script-js"></script> <script type="text/javascript" src="https://www.dmitrymakarov.ru/wp-includes/js/imagesloaded.min.js?ver=5.0.0" id="imagesloaded-js"></script> <script type="text/javascript" src="https://www.dmitrymakarov.ru/wp-includes/js/masonry.min.js?ver=4.2.2" id="masonry-js"></script> <script type="text/javascript" id="mcluhan_global-js-extra"> /* <![CDATA[ */ var mcluhan_ajaxpagination = {"ajaxurl":"https:\/\/www.dmitrymakarov.ru\/wp-admin\/admin-ajax.php","query_vars":"{\"page\":\"\",\"pagename\":\"python\\\/random-11\"}"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.dmitrymakarov.ru/wp-content/themes/mcluhan/assets/js/global.js?ver=2.1.1" id="mcluhan_global-js"></script> </body> </html>