Files
cds-monte-carlo-methods/Exercise sheet 1/feedback/2022-09-13 11:01:52.193495 UTC/exercise_sheet_01.html

1361 lines
331 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>exercise_sheet_01</title>
<style type="text/css">
/*!
* Bootstrap v3.3.4 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px \9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}select[multiple].form-group-sm .form-control,textarea.form-group-sm .form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}select[multiple].form-group-lg .form-control,textarea.form-group-lg .form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default.focus,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px)and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px)and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px)and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}</style>
<style type="text/css">
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight { background: #f8f8f8; }
.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #9C6500 } /* Comment.Preproc */
.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #E40000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #008400 } /* Generic.Inserted */
.highlight .go { color: #717171 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #B00040 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BA2121 } /* Literal.String */
.highlight .na { color: #687822 } /* Name.Attribute */
.highlight .nb { color: #008000 } /* Name.Builtin */
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0000FF } /* Name.Function */
.highlight .nl { color: #767600 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #19177C } /* Name.Variable */
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #666666 } /* Literal.Number.Bin */
.highlight .mf { color: #666666 } /* Literal.Number.Float */
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #A45A77 } /* Literal.String.Regex */
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0000FF } /* Name.Function.Magic */
.highlight .vc { color: #19177C } /* Name.Variable.Class */
.highlight .vg { color: #19177C } /* Name.Variable.Global */
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
.highlight .vm { color: #19177C } /* Name.Variable.Magic */
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
</style>
<!-- Loading mathjax macro -->
<!-- Load mathjax -->
<script type="text/javascript" async="" src="exercise_sheet_01_data/MathJax.js"></script>
<!-- MathJax configuration -->
<script type="text/x-mathjax-config;executed=true">
init_mathjax = function() {
if (window.MathJax) {
// MathJax loaded
MathJax.Hub.Config({
TeX: {
equationNumbers: {
autoNumber: "AMS",
useLabelIds: true
}
},
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true,
processEnvironments: true
},
displayAlign: 'center',
CommonHTML: {
linebreaks: {
automatic: true
}
}
});
MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
}
}
init_mathjax();
</script>
<!-- End of mathjax configuration -->
<style>
td.center, th.center {
text-align: center;
}
body {
overflow: visible;
font-size: 14px;
padding-top: 1em;
}
div#notebook {
overflow: visible;
border-top: none;
}
div#notebook-container {
width: 100%;
}
@media print {
div.cell {
display: block;
page-break-inside: avoid;
}
div.output_wrapper {
display: block;
page-break-inside: avoid;
}
div.output {
display: block;
page-break-inside: avoid;
}
}
div.prompt {
min-width: 21ex;
}
div.nbgrader_cell {
width: 100%;
}
div.nbgrader_cell .panel-heading {
padding: 0.4em 0.6em;
height: 37px;
}
div.nbgrader_cell .panel-heading a {
color: #BBBBBB;
}
div.nbgrader_cell .panel-footer {
padding: 0.4em 0.6em;
}
div.nbgrader_cell .panel-body {
padding: 0.4em;
}
.comment {
width: 100%;
margin-top: 0.5em;
}
div.nbgrader_cell .input_area {
background: white;
border: none;
}
.score {
color: black;
}
li.late-penalty {
color: #d2413a;
}
span.nbgrader-label {
line-height: 25px;
}
.save-icon {
margin-left: 1em;
top: 4px;
}
</style>
<style type="text/css">.MathJax_Hover_Frame {border-radius: .25em; -webkit-border-radius: .25em; -moz-border-radius: .25em; -khtml-border-radius: .25em; box-shadow: 0px 0px 15px #83A; -webkit-box-shadow: 0px 0px 15px #83A; -moz-box-shadow: 0px 0px 15px #83A; -khtml-box-shadow: 0px 0px 15px #83A; border: 1px solid #A6D ! important; display: inline-block; position: absolute}
.MathJax_Menu_Button .MathJax_Hover_Arrow {position: absolute; cursor: pointer; display: inline-block; border: 2px solid #AAA; border-radius: 4px; -webkit-border-radius: 4px; -moz-border-radius: 4px; -khtml-border-radius: 4px; font-family: 'Courier New',Courier; font-size: 9px; color: #F0F0F0}
.MathJax_Menu_Button .MathJax_Hover_Arrow span {display: block; background-color: #AAA; border: 1px solid; border-radius: 3px; line-height: 0; padding: 4px}
.MathJax_Hover_Arrow:hover {color: white!important; border: 2px solid #CCC!important}
.MathJax_Hover_Arrow:hover span {background-color: #CCC!important}
</style><style type="text/css">#MathJax_About {position: fixed; left: 50%; width: auto; text-align: center; border: 3px outset; padding: 1em 2em; background-color: #DDDDDD; color: black; cursor: default; font-family: message-box; font-size: 120%; font-style: normal; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; border-radius: 15px; -webkit-border-radius: 15px; -moz-border-radius: 15px; -khtml-border-radius: 15px; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_About.MathJax_MousePost {outline: none}
.MathJax_Menu {position: absolute; background-color: white; color: black; width: auto; padding: 2px; border: 1px solid #CCCCCC; margin: 0; cursor: default; font: menu; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
.MathJax_MenuItem {padding: 2px 2em; background: transparent}
.MathJax_MenuArrow {position: absolute; right: .5em; padding-top: .25em; color: #666666; font-size: .75em}
.MathJax_MenuActive .MathJax_MenuArrow {color: white}
.MathJax_MenuArrow.RTL {left: .5em; right: auto}
.MathJax_MenuCheck {position: absolute; left: .7em}
.MathJax_MenuCheck.RTL {right: .7em; left: auto}
.MathJax_MenuRadioCheck {position: absolute; left: 1em}
.MathJax_MenuRadioCheck.RTL {right: 1em; left: auto}
.MathJax_MenuLabel {padding: 2px 2em 4px 1.33em; font-style: italic}
.MathJax_MenuRule {border-top: 1px solid #CCCCCC; margin: 4px 1px 0px}
.MathJax_MenuDisabled {color: GrayText}
.MathJax_MenuActive {background-color: Highlight; color: HighlightText}
.MathJax_MenuDisabled:focus, .MathJax_MenuLabel:focus {background-color: #E8E8E8}
.MathJax_ContextMenu:focus {outline: none}
.MathJax_ContextMenu .MathJax_MenuItem:focus {outline: none}
#MathJax_AboutClose {top: .2em; right: .2em}
.MathJax_Menu .MathJax_MenuClose {top: -10px; left: -10px}
.MathJax_MenuClose {position: absolute; cursor: pointer; display: inline-block; border: 2px solid #AAA; border-radius: 18px; -webkit-border-radius: 18px; -moz-border-radius: 18px; -khtml-border-radius: 18px; font-family: 'Courier New',Courier; font-size: 24px; color: #F0F0F0}
.MathJax_MenuClose span {display: block; background-color: #AAA; border: 1.5px solid; border-radius: 18px; -webkit-border-radius: 18px; -moz-border-radius: 18px; -khtml-border-radius: 18px; line-height: 0; padding: 8px 0 6px}
.MathJax_MenuClose:hover {color: white!important; border: 2px solid #CCC!important}
.MathJax_MenuClose:hover span {background-color: #CCC!important}
.MathJax_MenuClose:hover:focus {outline: none}
</style><style type="text/css">.MathJax_Preview .MJXf-math {color: inherit!important}
</style><style type="text/css">.MJX_Assistive_MathML {position: absolute!important; top: 0; left: 0; clip: rect(1px, 1px, 1px, 1px); padding: 1px 0 0 0!important; border: 0!important; height: 1px!important; width: 1px!important; overflow: hidden!important; display: block!important; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none}
.MJX_Assistive_MathML.MJX_Assistive_MathML_Block {width: 100%!important}
</style><style type="text/css">#MathJax_Zoom {position: absolute; background-color: #F0F0F0; overflow: auto; display: block; z-index: 301; padding: .5em; border: 1px solid black; margin: 0; font-weight: normal; font-style: normal; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; box-shadow: 5px 5px 15px #AAAAAA; -webkit-box-shadow: 5px 5px 15px #AAAAAA; -moz-box-shadow: 5px 5px 15px #AAAAAA; -khtml-box-shadow: 5px 5px 15px #AAAAAA; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_ZoomOverlay {position: absolute; left: 0; top: 0; z-index: 300; display: inline-block; width: 100%; height: 100%; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
#MathJax_ZoomFrame {position: relative; display: inline-block; height: 0; width: 0}
#MathJax_ZoomEventTrap {position: absolute; left: 0; top: 0; z-index: 302; display: inline-block; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
</style><style type="text/css">.MathJax_Preview {color: #888}
#MathJax_Message {position: fixed; left: 1px; bottom: 2px; background-color: #E6E6E6; border: 1px solid #959595; margin: 0px; padding: 2px 8px; z-index: 102; color: black; font-size: 80%; width: auto; white-space: nowrap}
#MathJax_MSIE_Frame {position: absolute; top: 0; left: 0; width: 0px; z-index: 101; border: 0px; margin: 0px; padding: 0px}
.MathJax_Error {color: #CC0000; font-style: italic}
</style><style type="text/css">.MJXp-script {font-size: .8em}
.MJXp-right {-webkit-transform-origin: right; -moz-transform-origin: right; -ms-transform-origin: right; -o-transform-origin: right; transform-origin: right}
.MJXp-bold {font-weight: bold}
.MJXp-italic {font-style: italic}
.MJXp-scr {font-family: MathJax_Script,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-frak {font-family: MathJax_Fraktur,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-sf {font-family: MathJax_SansSerif,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-cal {font-family: MathJax_Caligraphic,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-mono {font-family: MathJax_Typewriter,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-largeop {font-size: 150%}
.MJXp-largeop.MJXp-int {vertical-align: -.2em}
.MJXp-math {display: inline-block; line-height: 1.2; text-indent: 0; font-family: 'Times New Roman',Times,STIXGeneral,serif; white-space: nowrap; border-collapse: collapse}
.MJXp-display {display: block; text-align: center; margin: 1em 0}
.MJXp-math span {display: inline-block}
.MJXp-box {display: block!important; text-align: center}
.MJXp-box:after {content: " "}
.MJXp-rule {display: block!important; margin-top: .1em}
.MJXp-char {display: block!important}
.MJXp-mo {margin: 0 .15em}
.MJXp-mfrac {margin: 0 .125em; vertical-align: .25em}
.MJXp-denom {display: inline-table!important; width: 100%}
.MJXp-denom > * {display: table-row!important}
.MJXp-surd {vertical-align: top}
.MJXp-surd > * {display: block!important}
.MJXp-script-box > * {display: table!important; height: 50%}
.MJXp-script-box > * > * {display: table-cell!important; vertical-align: top}
.MJXp-script-box > *:last-child > * {vertical-align: bottom}
.MJXp-script-box > * > * > * {display: block!important}
.MJXp-mphantom {visibility: hidden}
.MJXp-munderover, .MJXp-munder {display: inline-table!important}
.MJXp-over {display: inline-block!important; text-align: center}
.MJXp-over > * {display: block!important}
.MJXp-munderover > *, .MJXp-munder > * {display: table-row!important}
.MJXp-mtable {vertical-align: .25em; margin: 0 .125em}
.MJXp-mtable > * {display: inline-table!important; vertical-align: middle}
.MJXp-mtr {display: table-row!important}
.MJXp-mtd {display: table-cell!important; text-align: center; padding: .5em 0 0 .5em}
.MJXp-mtr > .MJXp-mtd:first-child {padding-left: 0}
.MJXp-mtr:first-child > .MJXp-mtd {padding-top: 0}
.MJXp-mlabeledtr {display: table-row!important}
.MJXp-mlabeledtr > .MJXp-mtd:first-child {padding-left: 0}
.MJXp-mlabeledtr:first-child > .MJXp-mtd {padding-top: 0}
.MJXp-merror {background-color: #FFFF88; color: #CC0000; border: 1px solid #CC0000; padding: 1px 3px; font-style: normal; font-size: 90%}
.MJXp-scale0 {-webkit-transform: scaleX(.0); -moz-transform: scaleX(.0); -ms-transform: scaleX(.0); -o-transform: scaleX(.0); transform: scaleX(.0)}
.MJXp-scale1 {-webkit-transform: scaleX(.1); -moz-transform: scaleX(.1); -ms-transform: scaleX(.1); -o-transform: scaleX(.1); transform: scaleX(.1)}
.MJXp-scale2 {-webkit-transform: scaleX(.2); -moz-transform: scaleX(.2); -ms-transform: scaleX(.2); -o-transform: scaleX(.2); transform: scaleX(.2)}
.MJXp-scale3 {-webkit-transform: scaleX(.3); -moz-transform: scaleX(.3); -ms-transform: scaleX(.3); -o-transform: scaleX(.3); transform: scaleX(.3)}
.MJXp-scale4 {-webkit-transform: scaleX(.4); -moz-transform: scaleX(.4); -ms-transform: scaleX(.4); -o-transform: scaleX(.4); transform: scaleX(.4)}
.MJXp-scale5 {-webkit-transform: scaleX(.5); -moz-transform: scaleX(.5); -ms-transform: scaleX(.5); -o-transform: scaleX(.5); transform: scaleX(.5)}
.MJXp-scale6 {-webkit-transform: scaleX(.6); -moz-transform: scaleX(.6); -ms-transform: scaleX(.6); -o-transform: scaleX(.6); transform: scaleX(.6)}
.MJXp-scale7 {-webkit-transform: scaleX(.7); -moz-transform: scaleX(.7); -ms-transform: scaleX(.7); -o-transform: scaleX(.7); transform: scaleX(.7)}
.MJXp-scale8 {-webkit-transform: scaleX(.8); -moz-transform: scaleX(.8); -ms-transform: scaleX(.8); -o-transform: scaleX(.8); transform: scaleX(.8)}
.MJXp-scale9 {-webkit-transform: scaleX(.9); -moz-transform: scaleX(.9); -ms-transform: scaleX(.9); -o-transform: scaleX(.9); transform: scaleX(.9)}
.MathJax_PHTML .noError {vertical-align: ; font-size: 90%; text-align: left; color: black; padding: 1px 3px; border: 1px solid}
</style><style type="text/css">.mjx-chtml {display: inline-block; line-height: 0; text-indent: 0; text-align: left; text-transform: none; font-style: normal; font-weight: normal; font-size: 100%; font-size-adjust: none; letter-spacing: normal; word-wrap: normal; word-spacing: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0; min-height: 0; border: 0; margin: 0; padding: 1px 0}
.MJXc-display {display: block; text-align: center; margin: 1em 0; padding: 0}
.mjx-chtml[tabindex]:focus, body :focus .mjx-chtml[tabindex] {display: inline-table}
.mjx-full-width {text-align: center; display: table-cell!important; width: 10000em}
.mjx-math {display: inline-block; border-collapse: separate; border-spacing: 0}
.mjx-math * {display: inline-block; -webkit-box-sizing: content-box!important; -moz-box-sizing: content-box!important; box-sizing: content-box!important; text-align: left}
.mjx-numerator {display: block; text-align: center}
.mjx-denominator {display: block; text-align: center}
.MJXc-stacked {height: 0; position: relative}
.MJXc-stacked > * {position: absolute}
.MJXc-bevelled > * {display: inline-block}
.mjx-stack {display: inline-block}
.mjx-op {display: block}
.mjx-under {display: table-cell}
.mjx-over {display: block}
.mjx-over > * {padding-left: 0px!important; padding-right: 0px!important}
.mjx-under > * {padding-left: 0px!important; padding-right: 0px!important}
.mjx-stack > .mjx-sup {display: block}
.mjx-stack > .mjx-sub {display: block}
.mjx-prestack > .mjx-presup {display: block}
.mjx-prestack > .mjx-presub {display: block}
.mjx-delim-h > .mjx-char {display: inline-block}
.mjx-surd {vertical-align: top}
.mjx-mphantom * {visibility: hidden}
.mjx-merror {background-color: #FFFF88; color: #CC0000; border: 1px solid #CC0000; padding: 2px 3px; font-style: normal; font-size: 90%}
.mjx-annotation-xml {line-height: normal}
.mjx-menclose > svg {fill: none; stroke: currentColor}
.mjx-mtr {display: table-row}
.mjx-mlabeledtr {display: table-row}
.mjx-mtd {display: table-cell; text-align: center}
.mjx-label {display: table-row}
.mjx-box {display: inline-block}
.mjx-block {display: block}
.mjx-span {display: inline}
.mjx-char {display: block; white-space: pre}
.mjx-itable {display: inline-table; width: auto}
.mjx-row {display: table-row}
.mjx-cell {display: table-cell}
.mjx-table {display: table; width: 100%}
.mjx-line {display: block; height: 0}
.mjx-strut {width: 0; padding-top: 1em}
.mjx-vsize {width: 0}
.MJXc-space1 {margin-left: .167em}
.MJXc-space2 {margin-left: .222em}
.MJXc-space3 {margin-left: .278em}
.mjx-chartest {display: block; visibility: hidden; position: absolute; top: 0; line-height: normal; font-size: 500%}
.mjx-chartest .mjx-char {display: inline}
.mjx-chartest .mjx-box {padding-top: 1000px}
.MJXc-processing {visibility: hidden; position: fixed; width: 0; height: 0; overflow: hidden}
.MJXc-processed {display: none}
.mjx-test {font-style: normal; font-weight: normal; font-size: 100%; font-size-adjust: none; text-indent: 0; text-transform: none; letter-spacing: normal; word-spacing: normal; overflow: hidden; height: 1px}
.mjx-test.mjx-test-display {display: table!important}
.mjx-test.mjx-test-inline {display: inline!important; margin-right: -1px}
.mjx-test.mjx-test-default {display: block!important; clear: both}
.mjx-ex-box {display: inline-block!important; position: absolute; overflow: hidden; min-height: 0; max-height: none; padding: 0; border: 0; margin: 0; width: 1px; height: 60ex}
.mjx-test-inline .mjx-left-box {display: inline-block; width: 0; float: left}
.mjx-test-inline .mjx-right-box {display: inline-block; width: 0; float: right}
.mjx-test-display .mjx-right-box {display: table-cell!important; width: 10000em!important; min-width: 0; max-width: none; padding: 0; border: 0; margin: 0}
#MathJax_CHTML_Tooltip {background-color: InfoBackground; color: InfoText; border: 1px solid black; box-shadow: 2px 2px 5px #AAAAAA; -webkit-box-shadow: 2px 2px 5px #AAAAAA; -moz-box-shadow: 2px 2px 5px #AAAAAA; -khtml-box-shadow: 2px 2px 5px #AAAAAA; padding: 3px 4px; z-index: 401; position: absolute; left: 0; top: 0; width: auto; height: auto; display: none}
.mjx-chtml .mjx-noError {line-height: 1.2; vertical-align: ; font-size: 90%; text-align: left; color: black; padding: 1px 3px; border: 1px solid}
.MJXc-TeX-unknown-R {font-family: STIXGeneral,'Cambria Math','Arial Unicode MS',serif; font-style: normal; font-weight: normal}
.MJXc-TeX-unknown-I {font-family: STIXGeneral,'Cambria Math','Arial Unicode MS',serif; font-style: italic; font-weight: normal}
.MJXc-TeX-unknown-B {font-family: STIXGeneral,'Cambria Math','Arial Unicode MS',serif; font-style: normal; font-weight: bold}
.MJXc-TeX-unknown-BI {font-family: STIXGeneral,'Cambria Math','Arial Unicode MS',serif; font-style: italic; font-weight: bold}
.MJXc-TeX-ams-R {font-family: MJXc-TeX-ams-R,MJXc-TeX-ams-Rw}
.MJXc-TeX-cal-B {font-family: MJXc-TeX-cal-B,MJXc-TeX-cal-Bx,MJXc-TeX-cal-Bw}
.MJXc-TeX-frak-R {font-family: MJXc-TeX-frak-R,MJXc-TeX-frak-Rw}
.MJXc-TeX-frak-B {font-family: MJXc-TeX-frak-B,MJXc-TeX-frak-Bx,MJXc-TeX-frak-Bw}
.MJXc-TeX-math-BI {font-family: MJXc-TeX-math-BI,MJXc-TeX-math-BIx,MJXc-TeX-math-BIw}
.MJXc-TeX-sans-R {font-family: MJXc-TeX-sans-R,MJXc-TeX-sans-Rw}
.MJXc-TeX-sans-B {font-family: MJXc-TeX-sans-B,MJXc-TeX-sans-Bx,MJXc-TeX-sans-Bw}
.MJXc-TeX-sans-I {font-family: MJXc-TeX-sans-I,MJXc-TeX-sans-Ix,MJXc-TeX-sans-Iw}
.MJXc-TeX-script-R {font-family: MJXc-TeX-script-R,MJXc-TeX-script-Rw}
.MJXc-TeX-type-R {font-family: MJXc-TeX-type-R,MJXc-TeX-type-Rw}
.MJXc-TeX-cal-R {font-family: MJXc-TeX-cal-R,MJXc-TeX-cal-Rw}
.MJXc-TeX-main-B {font-family: MJXc-TeX-main-B,MJXc-TeX-main-Bx,MJXc-TeX-main-Bw}
.MJXc-TeX-main-I {font-family: MJXc-TeX-main-I,MJXc-TeX-main-Ix,MJXc-TeX-main-Iw}
.MJXc-TeX-main-R {font-family: MJXc-TeX-main-R,MJXc-TeX-main-Rw}
.MJXc-TeX-math-I {font-family: MJXc-TeX-math-I,MJXc-TeX-math-Ix,MJXc-TeX-math-Iw}
.MJXc-TeX-size1-R {font-family: MJXc-TeX-size1-R,MJXc-TeX-size1-Rw}
.MJXc-TeX-size2-R {font-family: MJXc-TeX-size2-R,MJXc-TeX-size2-Rw}
.MJXc-TeX-size3-R {font-family: MJXc-TeX-size3-R,MJXc-TeX-size3-Rw}
.MJXc-TeX-size4-R {font-family: MJXc-TeX-size4-R,MJXc-TeX-size4-Rw}
.MJXc-TeX-vec-R {font-family: MJXc-TeX-vec-R,MJXc-TeX-vec-Rw}
.MJXc-TeX-vec-B {font-family: MJXc-TeX-vec-B,MJXc-TeX-vec-Bx,MJXc-TeX-vec-Bw}
@font-face {font-family: MJXc-TeX-ams-R; src: local('MathJax_AMS'), local('MathJax_AMS-Regular')}
@font-face {font-family: MJXc-TeX-ams-Rw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_AMS-Regular.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_AMS-Regular.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-cal-B; src: local('MathJax_Caligraphic Bold'), local('MathJax_Caligraphic-Bold')}
@font-face {font-family: MJXc-TeX-cal-Bx; src: local('MathJax_Caligraphic'); font-weight: bold}
@font-face {font-family: MJXc-TeX-cal-Bw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Caligraphic-Bold.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Bold.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Caligraphic-Bold.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-frak-R; src: local('MathJax_Fraktur'), local('MathJax_Fraktur-Regular')}
@font-face {font-family: MJXc-TeX-frak-Rw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Fraktur-Regular.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Regular.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Fraktur-Regular.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-frak-B; src: local('MathJax_Fraktur Bold'), local('MathJax_Fraktur-Bold')}
@font-face {font-family: MJXc-TeX-frak-Bx; src: local('MathJax_Fraktur'); font-weight: bold}
@font-face {font-family: MJXc-TeX-frak-Bw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Fraktur-Bold.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Bold.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Fraktur-Bold.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-math-BI; src: local('MathJax_Math BoldItalic'), local('MathJax_Math-BoldItalic')}
@font-face {font-family: MJXc-TeX-math-BIx; src: local('MathJax_Math'); font-weight: bold; font-style: italic}
@font-face {font-family: MJXc-TeX-math-BIw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Math-BoldItalic.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Math-BoldItalic.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Math-BoldItalic.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-sans-R; src: local('MathJax_SansSerif'), local('MathJax_SansSerif-Regular')}
@font-face {font-family: MJXc-TeX-sans-Rw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Regular.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Regular.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-sans-B; src: local('MathJax_SansSerif Bold'), local('MathJax_SansSerif-Bold')}
@font-face {font-family: MJXc-TeX-sans-Bx; src: local('MathJax_SansSerif'); font-weight: bold}
@font-face {font-family: MJXc-TeX-sans-Bw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Bold.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Bold.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Bold.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-sans-I; src: local('MathJax_SansSerif Italic'), local('MathJax_SansSerif-Italic')}
@font-face {font-family: MJXc-TeX-sans-Ix; src: local('MathJax_SansSerif'); font-style: italic}
@font-face {font-family: MJXc-TeX-sans-Iw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Italic.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Italic.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Italic.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-script-R; src: local('MathJax_Script'), local('MathJax_Script-Regular')}
@font-face {font-family: MJXc-TeX-script-Rw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Script-Regular.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Script-Regular.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Script-Regular.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-type-R; src: local('MathJax_Typewriter'), local('MathJax_Typewriter-Regular')}
@font-face {font-family: MJXc-TeX-type-Rw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Typewriter-Regular.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Typewriter-Regular.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Typewriter-Regular.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-cal-R; src: local('MathJax_Caligraphic'), local('MathJax_Caligraphic-Regular')}
@font-face {font-family: MJXc-TeX-cal-Rw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Caligraphic-Regular.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Regular.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Caligraphic-Regular.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-main-B; src: local('MathJax_Main Bold'), local('MathJax_Main-Bold')}
@font-face {font-family: MJXc-TeX-main-Bx; src: local('MathJax_Main'); font-weight: bold}
@font-face {font-family: MJXc-TeX-main-Bw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Main-Bold.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Main-Bold.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Main-Bold.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-main-I; src: local('MathJax_Main Italic'), local('MathJax_Main-Italic')}
@font-face {font-family: MJXc-TeX-main-Ix; src: local('MathJax_Main'); font-style: italic}
@font-face {font-family: MJXc-TeX-main-Iw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Main-Italic.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Main-Italic.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Main-Italic.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-main-R; src: local('MathJax_Main'), local('MathJax_Main-Regular')}
@font-face {font-family: MJXc-TeX-main-Rw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Main-Regular.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Main-Regular.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-math-I; src: local('MathJax_Math Italic'), local('MathJax_Math-Italic')}
@font-face {font-family: MJXc-TeX-math-Ix; src: local('MathJax_Math'); font-style: italic}
@font-face {font-family: MJXc-TeX-math-Iw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Math-Italic.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Math-Italic.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-size1-R; src: local('MathJax_Size1'), local('MathJax_Size1-Regular')}
@font-face {font-family: MJXc-TeX-size1-Rw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Size1-Regular.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Size1-Regular.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-size2-R; src: local('MathJax_Size2'), local('MathJax_Size2-Regular')}
@font-face {font-family: MJXc-TeX-size2-Rw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Size2-Regular.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Size2-Regular.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Size2-Regular.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-size3-R; src: local('MathJax_Size3'), local('MathJax_Size3-Regular')}
@font-face {font-family: MJXc-TeX-size3-Rw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Size3-Regular.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Size3-Regular.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Size3-Regular.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-size4-R; src: local('MathJax_Size4'), local('MathJax_Size4-Regular')}
@font-face {font-family: MJXc-TeX-size4-Rw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Size4-Regular.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Size4-Regular.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Size4-Regular.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-vec-R; src: local('MathJax_Vector'), local('MathJax_Vector-Regular')}
@font-face {font-family: MJXc-TeX-vec-Rw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Vector-Regular.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Vector-Regular.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Vector-Regular.otf') format('opentype')}
@font-face {font-family: MJXc-TeX-vec-B; src: local('MathJax_Vector Bold'), local('MathJax_Vector-Bold')}
@font-face {font-family: MJXc-TeX-vec-Bx; src: local('MathJax_Vector'); font-weight: bold}
@font-face {font-family: MJXc-TeX-vec-Bw; src /*1*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/eot/MathJax_Vector-Bold.eot'); src /*2*/: url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/woff/MathJax_Vector-Bold.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/fonts/HTML-CSS/TeX/otf/MathJax_Vector-Bold.otf') format('opentype')}
</style></head>
<body><div id="MathJax_Message" style="display: none;"></div>
<a name="top"></a>
<div class="container">
<div class="panel panel-default">
<div class="panel-heading">
<h4>exercise_sheet_01 (Score: 97.0 / 100.0)</h4>
<div id="toc">
<ol>
<li><a href="#cell-90b5022604409d60">Test cell</a> (Score: 12.0 / 12.0)</li>
<li><a href="#cell-311260afe5628598">Test cell</a> (Score: 12.0 / 12.0)</li>
<li><a href="#cell-1755ac9d1fb8402f">Coding free-response</a> (Score: 12.0 / 12.0)</li>
<li><a href="#comment-cell-1755ac9d1fb8402f">Comment</a></li>
<li><a href="#cell-e8e97677ad30041e">Test cell</a> (Score: 12.0 / 12.0)</li>
<li><a href="#cell-82ea663199a69ee2">Coding free-response</a> (Score: 11.0 / 12.0)</li>
<li><a href="#comment-cell-82ea663199a69ee2">Comment</a></li>
<li><a href="#cell-e3762269c892c3df">Coding free-response</a> (Score: 14.0 / 14.0)</li>
<li><a href="#comment-cell-e3762269c892c3df">Comment</a></li>
<li><a href="#cell-9726c572b9859251">Coding free-response</a> (Score: 14.0 / 14.0)</li>
<li><a href="#comment-cell-9726c572b9859251">Comment</a></li>
<li><a href="#cell-0677a8cb2d72d30f">Coding free-response</a> (Score: 10.0 / 12.0)</li>
<li><a href="#comment-cell-0677a8cb2d72d30f">Comment</a></li>
</ol>
</div>
</div>
<div class="panel-body">
<div id="notebook" class="border-box-sizing">
<div class="container" id="notebook-container">
<div tabindex="-1" id="notebook" class="border-box-sizing">
<div class="container" id="notebook-container">
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="Exercise-sheet">Exercise sheet<a class="anchor-link" href="#Exercise-sheet"></a></h1><p>Some general remarks about the exercises:</p>
<ul>
<li>For your convenience functions from the lecture are included below.
Feel free to reuse them without copying to the exercise solution box.</li>
<li>For each part of the exercise a solution box has been added, but you
may insert additional boxes. Do not hesitate to add Markdown boxes for
textual or LaTeX answers (via <code>Cell &gt; Cell Type &gt; Markdown</code>). But make sure to replace any part that says <code>YOUR CODE HERE</code> or <code>YOUR ANSWER HERE</code> and remove the <code>raise NotImplementedError()</code>.</li>
<li>Please make your code readable by humans (and not just by the Python
interpreter): choose informative function and variable names and use
consistent formatting. Feel free to check the <a href="https://www.python.org/dev/peps/pep-0008/">PEP 8 Style Guide for Python</a> for the widely adopted coding conventions or <a href="https://realpython.com/python-pep8/">this guide for explanation</a>.</li>
<li>Make sure that the full notebook runs without errors before submitting your work. This you can do by selecting <code>Kernel &gt; Restart &amp; Run All</code> in the jupyter menu.</li>
<li>Each sheet has 100 points worth of exercises. Note that only the
grades of sheets number 2, 4, 6, 8 count towards the course examination.
Submitting sheets 1, 3, 5, 7 &amp; 9 is voluntary and their grades are
just for feedback.</li>
</ul>
<p>Please fill in your name here:</p>
</div>
</div></div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[1]:</div><div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">NAME</span> <span class="o">=</span> <span class="s2">"Kees van Kempen"</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
</div>
</div></div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>Exercise sheet 1</strong></p>
<p>Code from the lecture:</p>
</div>
</div></div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[2]:</div><div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">matplotlib.pylab</span> <span class="k">as</span> <span class="nn">plt</span>
<span class="n">rng</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">default_rng</span><span class="p">()</span>
<span class="o">%</span><span class="k">matplotlib</span> inline
<span class="k">def</span> <span class="nf">random_in_square</span><span class="p">():</span>
<span class="sd">"""Returns a random position in the square [-1,1)x[-1,1)."""</span>
<span class="k">return</span> <span class="n">rng</span><span class="o">.</span><span class="n">uniform</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">is_in_circle</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
<span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">1</span>
<span class="k">def</span> <span class="nf">simulate_number_of_hits</span><span class="p">(</span><span class="n">N</span><span class="p">):</span>
<span class="sd">"""Simulates number of hits in case of N trials in the pebble game."""</span>
<span class="n">number_hits</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">N</span><span class="p">):</span>
<span class="n">position</span> <span class="o">=</span> <span class="n">random_in_square</span><span class="p">()</span>
<span class="k">if</span> <span class="n">is_in_circle</span><span class="p">(</span><span class="n">position</span><span class="p">):</span>
<span class="n">number_hits</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">return</span> <span class="n">number_hits</span>
<span class="k">def</span> <span class="nf">random_in_disk</span><span class="p">():</span>
<span class="sd">"""Returns a uniform point in the unit disk via rejection."""</span>
<span class="n">position</span> <span class="o">=</span> <span class="n">random_in_square</span><span class="p">()</span>
<span class="k">while</span> <span class="ow">not</span> <span class="n">is_in_circle</span><span class="p">(</span><span class="n">position</span><span class="p">):</span>
<span class="n">position</span> <span class="o">=</span> <span class="n">random_in_square</span><span class="p">()</span>
<span class="k">return</span> <span class="n">position</span>
<span class="k">def</span> <span class="nf">is_in_square</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
<span class="sd">"""Returns True if x is in the square (-1,1)^2."""</span>
<span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">&lt;</span> <span class="mi">1</span> <span class="ow">and</span> <span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">&lt;</span> <span class="mi">1</span>
<span class="k">def</span> <span class="nf">sample_next_position_naively</span><span class="p">(</span><span class="n">position</span><span class="p">,</span><span class="n">delta</span><span class="p">):</span>
<span class="sd">"""Keep trying a throw until it ends up in the square."""</span>
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
<span class="n">next_position</span> <span class="o">=</span> <span class="n">position</span> <span class="o">+</span> <span class="n">delta</span><span class="o">*</span><span class="n">random_in_disk</span><span class="p">()</span>
<span class="k">if</span> <span class="n">is_in_square</span><span class="p">(</span><span class="n">next_position</span><span class="p">):</span>
<span class="k">return</span> <span class="n">next_position</span>
<span class="k">def</span> <span class="nf">naive_markov_pebble</span><span class="p">(</span><span class="n">start</span><span class="p">,</span><span class="n">delta</span><span class="p">,</span><span class="n">N</span><span class="p">):</span>
<span class="sd">"""Simulates the number of hits in the naive Markov-chain version </span>
<span class="sd"> of the pebble game."""</span>
<span class="n">number_hits</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">position</span> <span class="o">=</span> <span class="n">start</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">N</span><span class="p">):</span>
<span class="n">position</span> <span class="o">=</span> <span class="n">sample_next_position_naively</span><span class="p">(</span><span class="n">position</span><span class="p">,</span><span class="n">delta</span><span class="p">)</span>
<span class="k">if</span> <span class="n">is_in_circle</span><span class="p">(</span><span class="n">position</span><span class="p">):</span>
<span class="n">number_hits</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">return</span> <span class="n">number_hits</span>
<span class="k">def</span> <span class="nf">naive_markov_pebble_generator</span><span class="p">(</span><span class="n">start</span><span class="p">,</span><span class="n">delta</span><span class="p">,</span><span class="n">N</span><span class="p">):</span>
<span class="sd">"""Same as naive_markov_pebble but only yields the positions."""</span>
<span class="n">position</span> <span class="o">=</span> <span class="n">start</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">N</span><span class="p">):</span>
<span class="n">position</span> <span class="o">=</span> <span class="n">sample_next_position_naively</span><span class="p">(</span><span class="n">position</span><span class="p">,</span><span class="n">delta</span><span class="p">)</span>
<span class="k">yield</span> <span class="n">position</span>
<span class="k">def</span> <span class="nf">sample_next_position</span><span class="p">(</span><span class="n">position</span><span class="p">,</span><span class="n">delta</span><span class="p">):</span>
<span class="sd">"""Attempt a throw and reject when outside the square."""</span>
<span class="n">next_position</span> <span class="o">=</span> <span class="n">position</span> <span class="o">+</span> <span class="n">delta</span><span class="o">*</span><span class="n">random_in_disk</span><span class="p">()</span>
<span class="k">if</span> <span class="n">is_in_square</span><span class="p">(</span><span class="n">next_position</span><span class="p">):</span>
<span class="k">return</span> <span class="n">next_position</span> <span class="c1"># accept!</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">return</span> <span class="n">position</span> <span class="c1"># reject!</span>
<span class="k">def</span> <span class="nf">markov_pebble</span><span class="p">(</span><span class="n">start</span><span class="p">,</span><span class="n">delta</span><span class="p">,</span><span class="n">N</span><span class="p">):</span>
<span class="sd">"""Simulates the number of hits in the proper Markov-chain version of the pebble game."""</span>
<span class="n">number_hits</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">position</span> <span class="o">=</span> <span class="n">start</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">N</span><span class="p">):</span>
<span class="n">position</span> <span class="o">=</span> <span class="n">sample_next_position</span><span class="p">(</span><span class="n">position</span><span class="p">,</span><span class="n">delta</span><span class="p">)</span>
<span class="k">if</span> <span class="n">is_in_circle</span><span class="p">(</span><span class="n">position</span><span class="p">):</span>
<span class="n">number_hits</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">return</span> <span class="n">number_hits</span>
<span class="k">def</span> <span class="nf">markov_pebble_generator</span><span class="p">(</span><span class="n">start</span><span class="p">,</span><span class="n">delta</span><span class="p">,</span><span class="n">N</span><span class="p">):</span>
<span class="sd">"""Same as markov_pebble but only yields the positions."""</span>
<span class="n">position</span> <span class="o">=</span> <span class="n">start</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">N</span><span class="p">):</span>
<span class="n">position</span> <span class="o">=</span> <span class="n">sample_next_position</span><span class="p">(</span><span class="n">position</span><span class="p">,</span><span class="n">delta</span><span class="p">)</span>
<span class="k">yield</span> <span class="n">position</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Empirical-convergence-rate-in-the-pebble-game">Empirical convergence rate in the pebble game<a class="anchor-link" href="#Empirical-convergence-rate-in-the-pebble-game"></a></h2><p><strong>(a)</strong> Write a function <code>pi_stddev</code> that estimates the standard deviation <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-1-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;&amp;#x03C3;&lt;/mi&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-1" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-2" class="mjx-mrow"><span id="MJXc-Node-3" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.186em; padding-bottom: 0.308em; padding-right: 0.001em;">σ</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>σ</mi></math></span></span><script type="math/tex" id="MathJax-Element-1">\sigma</script> of the <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-2-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;&amp;#x03C0;&lt;/mi&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-4" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-5" class="mjx-mrow"><span id="MJXc-Node-6" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.186em; padding-bottom: 0.308em; padding-right: 0.003em;">π</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>π</mi></math></span></span><script type="math/tex" id="MathJax-Element-2">\pi</script>-estimate using <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-3-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-7" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-8" class="mjx-mrow"><span id="MJXc-Node-9" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.308em;">n</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>n</mi></math></span></span><script type="math/tex" id="MathJax-Element-3">n</script> trials by running the direct-sampling pebble game <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-4-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;m&lt;/mi&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-10" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-11" class="mjx-mrow"><span id="MJXc-Node-12" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.308em;">m</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>m</mi></math></span></span><script type="math/tex" id="MathJax-Element-4">m</script> times. Store this data for <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-5-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;msup&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;mn&gt;4&lt;/mn&gt;&lt;/msup&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;msup&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;mn&gt;5&lt;/mn&gt;&lt;/msup&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;mo&gt;&amp;#x2026;&lt;/mo&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;msup&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mn&gt;14&lt;/mn&gt;&lt;/mrow&gt;&lt;/msup&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-13" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-14" class="mjx-mrow"><span id="MJXc-Node-15" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.308em;">n</span></span><span id="MJXc-Node-16" class="mjx-mo MJXc-space3"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.064em; padding-bottom: 0.308em;">=</span></span><span id="MJXc-Node-17" class="mjx-msubsup MJXc-space3"><span class="mjx-base"><span id="MJXc-Node-18" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">2</span></span></span><span class="mjx-sup" style="font-size: 70.7%; vertical-align: 0.591em; padding-left: 0px; padding-right: 0.071em;"><span id="MJXc-Node-19" class="mjx-mn" style=""><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">4</span></span></span></span><span id="MJXc-Node-20" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="margin-top: -0.18em; padding-bottom: 0.553em;">,</span></span><span id="MJXc-Node-21" class="mjx-msubsup MJXc-space1"><span class="mjx-base"><span id="MJXc-Node-22" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">2</span></span></span><span class="mjx-sup" style="font-size: 70.7%; vertical-align: 0.591em; padding-left: 0px; padding-right: 0.071em;"><span id="MJXc-Node-23" class="mjx-mn" style=""><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">5</span></span></span></span><span id="MJXc-Node-24" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="margin-top: -0.18em; padding-bottom: 0.553em;">,</span></span><span id="MJXc-Node-25" class="mjx-mo MJXc-space1"><span class="mjx-char MJXc-TeX-main-R" style="margin-top: -0.18em; padding-bottom: 0.369em;"></span></span><span id="MJXc-Node-26" class="mjx-mo MJXc-space1"><span class="mjx-char MJXc-TeX-main-R" style="margin-top: -0.18em; padding-bottom: 0.553em;">,</span></span><span id="MJXc-Node-27" class="mjx-msubsup MJXc-space1"><span class="mjx-base"><span id="MJXc-Node-28" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">2</span></span></span><span class="mjx-sup" style="font-size: 70.7%; vertical-align: 0.591em; padding-left: 0px; padding-right: 0.071em;"><span id="MJXc-Node-29" class="mjx-texatom" style=""><span id="MJXc-Node-30" class="mjx-mrow"><span id="MJXc-Node-31" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">14</span></span></span></span></span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>n</mi><mo>=</mo><msup><mn>2</mn><mn>4</mn></msup><mo>,</mo><msup><mn>2</mn><mn>5</mn></msup><mo>,</mo><mo></mo><mo>,</mo><msup><mn>2</mn><mrow class="MJX-TeXAtom-ORD"><mn>14</mn></mrow></msup></math></span></span><script type="math/tex" id="MathJax-Element-5">n=2^4,2^5,\ldots,2^{14}</script> and <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-6-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;m&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;200&lt;/mn&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-32" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-33" class="mjx-mrow"><span id="MJXc-Node-34" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.308em;">m</span></span><span id="MJXc-Node-35" class="mjx-mo MJXc-space3"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.064em; padding-bottom: 0.308em;">=</span></span><span id="MJXc-Node-36" class="mjx-mn MJXc-space3"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">200</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>m</mi><mo>=</mo><mn>200</mn></math></span></span><script type="math/tex" id="MathJax-Element-6">m=200</script> in an array. <em>Hint</em>: you may use the NumPy function <a href="https://numpy.org/doc/stable/reference/generated/numpy.std.html"><code>np.std</code></a>. <strong>(12 pts)</strong></p>
</div>
</div></div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[3]:</div><div class="panel panel-primary nbgrader_cell">
<a name="comment-cell-0e3910cb420ef878"></a><div class="panel-heading"><span class="nbgrader-label">Student's answer</span><span class="pull-right"><a href="#top">(Top)</a></span></div>
<div class="panel-body">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">pi_stddev</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">m</span><span class="p">):</span>
<span class="sd">"""Estimate the standard deviation in the pi estimate in the case of n trials,</span>
<span class="sd"> based on m runs of the direct-sampling pebble game."""</span>
<span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">std</span><span class="p">([</span><span class="n">simulate_number_of_hits</span><span class="p">(</span><span class="n">n</span><span class="p">)</span><span class="o">/</span><span class="n">n</span><span class="o">*</span><span class="mi">4</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">m</span><span class="p">)])</span>
<span class="n">stddev_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">2</span><span class="o">**</span><span class="n">k</span><span class="p">,</span><span class="n">pi_stddev</span><span class="p">(</span><span class="mi">2</span><span class="o">**</span><span class="n">k</span><span class="p">,</span><span class="mi">200</span><span class="p">)]</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="mi">12</span><span class="p">)])</span>
<span class="n">stddev_data</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt output_prompt">Out[3]:</div>
<div class="output_text output_subarea output_execute_result">
<pre>array([[1.60000000e+01, 3.54522126e-01],
[3.20000000e+01, 2.87754643e-01],
[6.40000000e+01, 2.21671341e-01],
[1.28000000e+02, 1.50942352e-01],
[2.56000000e+02, 1.00401902e-01],
[5.12000000e+02, 6.94667450e-02],
[1.02400000e+03, 4.96484068e-02],
[2.04800000e+03, 3.59752212e-02]])</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[4]:</div><div class="panel panel-primary nbgrader_cell">
<a name="cell-90b5022604409d60"></a><div class="panel-heading"><span class="nbgrader-label">Grade cell: <code>cell-90b5022604409d60</code></span>
<span class="pull-right">
Score: 12.0 / 12.0 <a href="#top">(Top)</a>
</span></div>
<div class="panel-body">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># If done correctly, your code should pass the following tests</span>
<span class="kn">from</span> <span class="nn">nose.tools</span> <span class="kn">import</span> <span class="n">assert_almost_equal</span>
<span class="n">assert_almost_equal</span><span class="p">(</span><span class="n">pi_stddev</span><span class="p">(</span><span class="mi">2</span><span class="o">**</span><span class="mi">3</span><span class="p">,</span><span class="mi">1000</span><span class="p">),</span><span class="mf">0.582</span><span class="p">,</span><span class="n">delta</span><span class="o">=</span><span class="mf">0.03</span><span class="p">)</span>
<span class="n">assert_almost_equal</span><span class="p">(</span><span class="n">pi_stddev</span><span class="p">(</span><span class="mi">2</span><span class="o">**</span><span class="mi">4</span><span class="p">,</span><span class="mi">1000</span><span class="p">),</span><span class="mf">0.411</span><span class="p">,</span><span class="n">delta</span><span class="o">=</span><span class="mf">0.03</span><span class="p">)</span>
<span class="c1">### BEGIN HIDDEN TESTS</span>
<span class="n">assert_almost_equal</span><span class="p">(</span><span class="n">pi_stddev</span><span class="p">(</span><span class="mi">2</span><span class="o">**</span><span class="mi">5</span><span class="p">,</span><span class="mi">1000</span><span class="p">),</span><span class="mf">0.291</span><span class="p">,</span><span class="n">delta</span><span class="o">=</span><span class="mf">0.03</span><span class="p">)</span>
<span class="n">assert_almost_equal</span><span class="p">(</span><span class="n">pi_stddev</span><span class="p">(</span><span class="mi">2</span><span class="o">**</span><span class="mi">6</span><span class="p">,</span><span class="mi">1000</span><span class="p">),</span><span class="mf">0.207</span><span class="p">,</span><span class="n">delta</span><span class="o">=</span><span class="mf">0.03</span><span class="p">)</span>
<span class="c1">### END HIDDEN TESTS</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>(b)</strong> Write a function <code>fit_power_law</code> that takes an array of <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-7-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;mi&gt;&amp;#x03C3;&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-37" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-38" class="mjx-mrow"><span id="MJXc-Node-39" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.491em; padding-bottom: 0.614em;">(</span></span><span id="MJXc-Node-40" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.308em;">n</span></span><span id="MJXc-Node-41" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="margin-top: -0.18em; padding-bottom: 0.553em;">,</span></span><span id="MJXc-Node-42" class="mjx-mi MJXc-space1"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.186em; padding-bottom: 0.308em; padding-right: 0.001em;">σ</span></span><span id="MJXc-Node-43" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.491em; padding-bottom: 0.614em;">)</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mo stretchy="false">(</mo><mi>n</mi><mo>,</mo><mi>σ</mi><mo stretchy="false">)</mo></math></span></span><script type="math/tex" id="MathJax-Element-7">(n,\sigma)</script> pairs and determines best-fit parameters <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-8-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;mi&gt;p&lt;/mi&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-44" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-45" class="mjx-mrow"><span id="MJXc-Node-46" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.308em;">a</span></span><span id="MJXc-Node-47" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="margin-top: -0.18em; padding-bottom: 0.553em;">,</span></span><span id="MJXc-Node-48" class="mjx-mi MJXc-space1"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.491em;">p</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>a</mi><mo>,</mo><mi>p</mi></math></span></span><script type="math/tex" id="MathJax-Element-8">a,p</script> for the curve <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-9-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;&amp;#x03C3;&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;msup&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;p&lt;/mi&gt;&lt;/msup&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-49" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-50" class="mjx-mrow"><span id="MJXc-Node-51" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.186em; padding-bottom: 0.308em; padding-right: 0.001em;">σ</span></span><span id="MJXc-Node-52" class="mjx-mo MJXc-space3"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.064em; padding-bottom: 0.308em;">=</span></span><span id="MJXc-Node-53" class="mjx-mi MJXc-space3"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.308em;">a</span></span><span id="MJXc-Node-54" class="mjx-msubsup"><span class="mjx-base"><span id="MJXc-Node-55" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.308em;">n</span></span></span><span class="mjx-sup" style="font-size: 70.7%; vertical-align: 0.513em; padding-left: 0px; padding-right: 0.071em;"><span id="MJXc-Node-56" class="mjx-mi" style=""><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.491em;">p</span></span></span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>σ</mi><mo>=</mo><mi>a</mi><msup><mi>n</mi><mi>p</mi></msup></math></span></span><script type="math/tex" id="MathJax-Element-9">\sigma = a n^p</script>. This is best done by fitting a straight line to the data on a log-log scale (<span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-10-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;log&lt;/mi&gt;&lt;mo&gt;&amp;#x2061;&lt;/mo&gt;&lt;mi&gt;&amp;#x03C3;&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;log&lt;/mi&gt;&lt;mo&gt;&amp;#x2061;&lt;/mo&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mi&gt;p&lt;/mi&gt;&lt;mi&gt;log&lt;/mi&gt;&lt;mo&gt;&amp;#x2061;&lt;/mo&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-57" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-58" class="mjx-mrow"><span id="MJXc-Node-59" class="mjx-mi"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.43em; padding-bottom: 0.553em;">log</span></span><span id="MJXc-Node-60" class="mjx-mo"><span class="mjx-char"></span></span><span id="MJXc-Node-61" class="mjx-mi MJXc-space1"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.186em; padding-bottom: 0.308em; padding-right: 0.001em;">σ</span></span><span id="MJXc-Node-62" class="mjx-mo MJXc-space3"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.064em; padding-bottom: 0.308em;">=</span></span><span id="MJXc-Node-63" class="mjx-mi MJXc-space3"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.43em; padding-bottom: 0.553em;">log</span></span><span id="MJXc-Node-64" class="mjx-mo"><span class="mjx-char"></span></span><span id="MJXc-Node-65" class="mjx-mi MJXc-space1"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.308em;">a</span></span><span id="MJXc-Node-66" class="mjx-mo MJXc-space2"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.308em; padding-bottom: 0.43em;">+</span></span><span id="MJXc-Node-67" class="mjx-mi MJXc-space2"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.491em;">p</span></span><span id="MJXc-Node-68" class="mjx-mi MJXc-space1"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.43em; padding-bottom: 0.553em;">log</span></span><span id="MJXc-Node-69" class="mjx-mo"><span class="mjx-char"></span></span><span id="MJXc-Node-70" class="mjx-mi MJXc-space1"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.308em;">n</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>log</mi><mo></mo><mi>σ</mi><mo>=</mo><mi>log</mi><mo></mo><mi>a</mi><mo>+</mo><mi>p</mi><mi>log</mi><mo></mo><mi>n</mi></math></span></span><script type="math/tex" id="MathJax-Element-10">\log\sigma=\log a+p\log n</script>). <em>Hint</em>: use <a href="https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html"><code>curve_fit</code></a> from SciPy. <strong>(12 pts)</strong></p>
</div>
</div></div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[5]:</div><div class="panel panel-primary nbgrader_cell">
<a name="comment-cell-8656545dbb5ec948"></a><div class="panel-heading"><span class="nbgrader-label">Student's answer</span><span class="pull-right"><a href="#top">(Top)</a></span></div>
<div class="panel-body">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">scipy.optimize</span>
<span class="k">def</span> <span class="nf">fit_power_law</span><span class="p">(</span><span class="n">stddev_data</span><span class="p">):</span>
<span class="sd">"""Compute the best fit parameters a and p."""</span>
<span class="c1"># Define the to be fitted function. We use the log, due to the calculation of the uncertainties.</span>
<span class="n">log_f</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">p</span><span class="p">:</span> <span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="o">+</span> <span class="n">p</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<span class="n">n</span><span class="p">,</span> <span class="n">𝜎</span> <span class="o">=</span> <span class="n">stddev_data</span><span class="o">.</span><span class="n">T</span>
<span class="n">a_fit</span><span class="p">,</span> <span class="n">p_fit</span> <span class="o">=</span> <span class="n">scipy</span><span class="o">.</span><span class="n">optimize</span><span class="o">.</span><span class="n">curve_fit</span><span class="p">(</span><span class="n">log_f</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">𝜎</span><span class="p">))[</span><span class="mi">0</span><span class="p">]</span>
<span class="k">return</span> <span class="n">a_fit</span><span class="p">,</span> <span class="n">p_fit</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[6]:</div><div class="panel panel-primary nbgrader_cell">
<a name="cell-311260afe5628598"></a><div class="panel-heading"><span class="nbgrader-label">Grade cell: <code>cell-311260afe5628598</code></span>
<span class="pull-right">
Score: 12.0 / 12.0 <a href="#top">(Top)</a>
</span></div>
<div class="panel-body">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">nose.tools</span> <span class="kn">import</span> <span class="n">assert_almost_equal</span>
<span class="n">assert_almost_equal</span><span class="p">(</span><span class="n">fit_power_law</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mf">16.0</span><span class="p">,</span><span class="mf">1.4</span><span class="p">],[</span><span class="mf">32.0</span><span class="p">,</span><span class="mf">1.1</span><span class="p">],[</span><span class="mf">64.0</span><span class="p">,</span><span class="mf">0.9</span><span class="p">]]))[</span><span class="mi">0</span><span class="p">],</span><span class="mf">3.36</span><span class="p">,</span><span class="n">delta</span><span class="o">=</span><span class="mf">0.05</span><span class="p">)</span>
<span class="n">assert_almost_equal</span><span class="p">(</span><span class="n">fit_power_law</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mf">16.0</span><span class="p">,</span><span class="mf">1.4</span><span class="p">],[</span><span class="mf">32.0</span><span class="p">,</span><span class="mf">1.1</span><span class="p">],[</span><span class="mf">64.0</span><span class="p">,</span><span class="mf">0.9</span><span class="p">]]))[</span><span class="mi">1</span><span class="p">],</span><span class="o">-</span><span class="mf">0.31</span><span class="p">,</span><span class="n">delta</span><span class="o">=</span><span class="mf">0.03</span><span class="p">)</span>
<span class="c1">### BEGIN HIDDEN TESTS</span>
<span class="n">assert_almost_equal</span><span class="p">(</span><span class="n">fit_power_law</span><span class="p">(</span><span class="n">stddev_data</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span><span class="mf">1.82</span><span class="p">,</span><span class="n">delta</span><span class="o">=</span><span class="mf">0.3</span><span class="p">)</span>
<span class="n">assert_almost_equal</span><span class="p">(</span><span class="n">fit_power_law</span><span class="p">(</span><span class="n">stddev_data</span><span class="p">)[</span><span class="mi">1</span><span class="p">],</span><span class="o">-</span><span class="mf">0.5</span><span class="p">,</span><span class="n">delta</span><span class="o">=</span><span class="mf">0.08</span><span class="p">)</span>
<span class="c1">### END HIDDEN TESTS</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>(c)</strong> Plot the data against the fitted curve <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-11-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;&amp;#x03C3;&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;msup&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;p&lt;/mi&gt;&lt;/msup&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-71" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-72" class="mjx-mrow"><span id="MJXc-Node-73" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.186em; padding-bottom: 0.308em; padding-right: 0.001em;">σ</span></span><span id="MJXc-Node-74" class="mjx-mo MJXc-space3"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.064em; padding-bottom: 0.308em;">=</span></span><span id="MJXc-Node-75" class="mjx-mi MJXc-space3"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.308em;">a</span></span><span id="MJXc-Node-76" class="mjx-msubsup"><span class="mjx-base"><span id="MJXc-Node-77" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.308em;">n</span></span></span><span class="mjx-sup" style="font-size: 70.7%; vertical-align: 0.513em; padding-left: 0px; padding-right: 0.071em;"><span id="MJXc-Node-78" class="mjx-mi" style=""><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.247em; padding-bottom: 0.491em;">p</span></span></span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>σ</mi><mo>=</mo><mi>a</mi><msup><mi>n</mi><mi>p</mi></msup></math></span></span><script type="math/tex" id="MathJax-Element-11">\sigma = a n^p</script> in a log-log plot. Don't forget to properly label your axes. <em>Hint</em>: use <a href="https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.loglog.html"><code>loglog</code></a> from matplotlib. <strong>(12 pts)</strong></p>
</div>
</div></div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[7]:</div><div class="panel panel-primary nbgrader_cell">
<a name="comment-cell-1755ac9d1fb8402f"></a><a name="cell-1755ac9d1fb8402f"></a><div class="panel-heading"><span class="nbgrader-label">Student's answer</span><span class="pull-right">
Score: 12.0 / 12.0 <a href="#top">(Top)</a>
</span></div>
<div class="panel-body">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">a_fit</span><span class="p">,</span> <span class="n">p_fit</span> <span class="o">=</span> <span class="n">fit_power_law</span><span class="p">(</span><span class="n">stddev_data</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"Convergence of standard deviation of direct-sampled $\pi$ guesses over $n$ throws among $m = 200$ trials"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">loglog</span><span class="p">(</span><span class="o">*</span><span class="n">stddev_data</span><span class="o">.</span><span class="n">T</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">"data"</span><span class="p">)</span>
<span class="n">n_range</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">logspace</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">loglog</span><span class="p">(</span><span class="n">n_range</span><span class="p">,</span> <span class="n">a_fit</span><span class="o">*</span><span class="n">n_range</span><span class="o">**</span><span class="n">p_fit</span><span class="p">,</span>
<span class="n">label</span><span class="o">=</span><span class="s2">"fitted $\sigma = an^p$</span><span class="se">\n</span><span class="s2">($a = </span><span class="si">{:.3f}</span><span class="s2">, p = </span><span class="si">{:.3f}</span><span class="s2">)$"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">a_fit</span><span class="p">,</span> <span class="n">p_fit</span><span class="p">))</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">"$n$"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">"$\sigma$"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="panel-footer">
<div>
<b>Comments:</b> <p>Good labeling! Use dots for the data.</p>
</div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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
">
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Volume-of-a-unit-ball-in-other-dimensions">Volume of a unit ball in other dimensions<a class="anchor-link" href="#Volume-of-a-unit-ball-in-other-dimensions"></a></h2><p>In this exercise you will adapt the direct-sampling Monte Carlo method of the pebble game to higher dimensions to
estimate the <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-12-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-79" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-80" class="mjx-mrow"><span id="MJXc-Node-81" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.003em;">d</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>d</mi></math></span></span><script type="math/tex" id="MathJax-Element-12">d</script>-dimensional volume of the <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-13-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-82" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-83" class="mjx-mrow"><span id="MJXc-Node-84" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.003em;">d</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>d</mi></math></span></span><script type="math/tex" id="MathJax-Element-13">d</script>-dimensional ball of radius <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-14-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-85" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-86" class="mjx-mrow"><span id="MJXc-Node-87" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">1</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>1</mn></math></span></span><script type="math/tex" id="MathJax-Element-14">1</script>.</p>
<p><strong>(a)</strong> Adapt the direct-sampling Monte Carlo method to the pebble game in a <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-15-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-88" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-89" class="mjx-mrow"><span id="MJXc-Node-90" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.003em;">d</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>d</mi></math></span></span><script type="math/tex" id="MathJax-Element-15">d</script>-dimensional hypercube <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-16-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mo&gt;&amp;#x2212;&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;msup&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;/msup&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-91" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-92" class="mjx-mrow"><span id="MJXc-Node-93" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.491em; padding-bottom: 0.614em;">(</span></span><span id="MJXc-Node-94" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.308em; padding-bottom: 0.43em;"></span></span><span id="MJXc-Node-95" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">1</span></span><span id="MJXc-Node-96" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="margin-top: -0.18em; padding-bottom: 0.553em;">,</span></span><span id="MJXc-Node-97" class="mjx-mn MJXc-space1"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">1</span></span><span id="MJXc-Node-98" class="mjx-msubsup"><span class="mjx-base"><span id="MJXc-Node-99" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.491em; padding-bottom: 0.614em;">)</span></span></span><span class="mjx-sup" style="font-size: 70.7%; vertical-align: 0.513em; padding-left: 0px; padding-right: 0.071em;"><span id="MJXc-Node-100" class="mjx-mi" style=""><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.003em;">d</span></span></span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mo stretchy="false">(</mo><mo></mo><mn>1</mn><mo>,</mo><mn>1</mn><msup><mo stretchy="false">)</mo><mi>d</mi></msup></math></span></span><script type="math/tex" id="MathJax-Element-16">(-1,1)^d</script> with an inscribed <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-17-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-101" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-102" class="mjx-mrow"><span id="MJXc-Node-103" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.003em;">d</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>d</mi></math></span></span><script type="math/tex" id="MathJax-Element-17">d</script>-dimensional unit ball. <strong>(12 pts)</strong></p>
</div>
</div></div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[8]:</div><div class="panel panel-primary nbgrader_cell">
<a name="comment-cell-120de066cebda898"></a><div class="panel-heading"><span class="nbgrader-label">Student's answer</span><span class="pull-right"><a href="#top">(Top)</a></span></div>
<div class="panel-body">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">number_of_hits_in_d_dimensions</span><span class="p">(</span><span class="n">N</span><span class="p">,</span><span class="n">d</span><span class="p">):</span>
<span class="sd">"""Simulates number of hits in case of N trials in the d-dimensional direct-sampling pebble game."""</span>
<span class="k">def</span> <span class="nf">random_in_d_dimensional_box</span><span class="p">():</span>
<span class="sd">"""Returns a random position in the box [-1,1)^d."""</span>
<span class="k">return</span> <span class="n">rng</span><span class="o">.</span><span class="n">uniform</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">d</span><span class="p">)</span>
<span class="n">number_hits</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">N</span><span class="p">):</span>
<span class="n">position</span> <span class="o">=</span> <span class="n">random_in_d_dimensional_box</span><span class="p">()</span>
<span class="k">if</span> <span class="n">is_in_circle</span><span class="p">(</span><span class="n">position</span><span class="p">):</span>
<span class="n">number_hits</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">return</span> <span class="n">number_hits</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[9]:</div><div class="panel panel-primary nbgrader_cell">
<a name="cell-e8e97677ad30041e"></a><div class="panel-heading"><span class="nbgrader-label">Grade cell: <code>cell-e8e97677ad30041e</code></span>
<span class="pull-right">
Score: 12.0 / 12.0 <a href="#top">(Top)</a>
</span></div>
<div class="panel-body">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">nose.tools</span> <span class="kn">import</span> <span class="n">assert_almost_equal</span>
<span class="n">assert_almost_equal</span><span class="p">(</span><span class="n">number_of_hits_in_d_dimensions</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span><span class="mi">100</span><span class="p">,</span><span class="n">delta</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
<span class="n">assert_almost_equal</span><span class="p">(</span><span class="n">number_of_hits_in_d_dimensions</span><span class="p">(</span><span class="mi">2000</span><span class="p">,</span><span class="mi">3</span><span class="p">),</span><span class="mi">1045</span><span class="p">,</span><span class="n">delta</span><span class="o">=</span><span class="mi">50</span><span class="p">)</span>
<span class="c1">### BEGIN HIDDEN TESTS</span>
<span class="n">assert_almost_equal</span><span class="p">(</span><span class="n">number_of_hits_in_d_dimensions</span><span class="p">(</span><span class="mi">2000</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span><span class="mi">1572</span><span class="p">,</span><span class="n">delta</span><span class="o">=</span><span class="mi">50</span><span class="p">)</span>
<span class="n">assert_almost_equal</span><span class="p">(</span><span class="n">number_of_hits_in_d_dimensions</span><span class="p">(</span><span class="mi">2000</span><span class="p">,</span><span class="mi">4</span><span class="p">),</span><span class="mi">619</span><span class="p">,</span><span class="n">delta</span><span class="o">=</span><span class="mi">50</span><span class="p">)</span>
<span class="c1">### END HIDDEN TESTS</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>(b)</strong> Compare your estimates for the volume <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-18-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;msub&gt;&lt;mi&gt;V&lt;/mi&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;/msub&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-104" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-105" class="mjx-mrow"><span id="MJXc-Node-106" class="mjx-msubsup"><span class="mjx-base" style="margin-right: -0.186em;"><span id="MJXc-Node-107" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.186em;">V</span></span></span><span class="mjx-sub" style="font-size: 70.7%; vertical-align: -0.219em; padding-right: 0.071em;"><span id="MJXc-Node-108" class="mjx-mi" style=""><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.003em;">d</span></span></span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>V</mi><mi>d</mi></msub></math></span></span><script type="math/tex" id="MathJax-Element-18">V_d</script> of the <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-19-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-109" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-110" class="mjx-mrow"><span id="MJXc-Node-111" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.003em;">d</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>d</mi></math></span></span><script type="math/tex" id="MathJax-Element-19">d</script>-dimensional unit ball for <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-20-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;10000&lt;/mn&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-112" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-113" class="mjx-mrow"><span id="MJXc-Node-114" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.085em;">N</span></span><span id="MJXc-Node-115" class="mjx-mo MJXc-space3"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.064em; padding-bottom: 0.308em;">=</span></span><span id="MJXc-Node-116" class="mjx-mn MJXc-space3"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">10000</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>N</mi><mo>=</mo><mn>10000</mn></math></span></span><script type="math/tex" id="MathJax-Element-20">N=10000</script> trials and <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-21-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;mo&gt;&amp;#x2026;&lt;/mo&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;mn&gt;7&lt;/mn&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-117" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-118" class="mjx-mrow"><span id="MJXc-Node-119" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.003em;">d</span></span><span id="MJXc-Node-120" class="mjx-mo MJXc-space3"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.064em; padding-bottom: 0.308em;">=</span></span><span id="MJXc-Node-121" class="mjx-mn MJXc-space3"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">1</span></span><span id="MJXc-Node-122" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="margin-top: -0.18em; padding-bottom: 0.553em;">,</span></span><span id="MJXc-Node-123" class="mjx-mn MJXc-space1"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">2</span></span><span id="MJXc-Node-124" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="margin-top: -0.18em; padding-bottom: 0.553em;">,</span></span><span id="MJXc-Node-125" class="mjx-mo MJXc-space1"><span class="mjx-char MJXc-TeX-main-R" style="margin-top: -0.18em; padding-bottom: 0.369em;"></span></span><span id="MJXc-Node-126" class="mjx-mo MJXc-space1"><span class="mjx-char MJXc-TeX-main-R" style="margin-top: -0.18em; padding-bottom: 0.553em;">,</span></span><span id="MJXc-Node-127" class="mjx-mn MJXc-space1"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">7</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>d</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo></mo><mo>,</mo><mn>7</mn></math></span></span><script type="math/tex" id="MathJax-Element-21">d=1,2,\ldots,7</script> to the <a href="https://en.wikipedia.org/wiki/Volume_of_an_n-ball">exact formula</a> <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-22-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;msub&gt;&lt;mi&gt;V&lt;/mi&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;/msub&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mfrac&gt;&lt;msup&gt;&lt;mi&gt;&amp;#x03C0;&lt;/mi&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mo&gt;/&lt;/mo&gt;&lt;/mrow&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/mrow&gt;&lt;/msup&gt;&lt;mrow&gt;&lt;mi mathvariant=&quot;normal&quot;&gt;&amp;#x0393;&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mstyle displaystyle=&quot;false&quot; scriptlevel=&quot;0&quot;&gt;&lt;mfrac&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/mfrac&gt;&lt;/mstyle&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;/mfrac&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-128" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-129" class="mjx-mrow"><span id="MJXc-Node-130" class="mjx-msubsup"><span class="mjx-base" style="margin-right: -0.186em;"><span id="MJXc-Node-131" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.186em;">V</span></span></span><span class="mjx-sub" style="font-size: 70.7%; vertical-align: -0.219em; padding-right: 0.071em;"><span id="MJXc-Node-132" class="mjx-mi" style=""><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.003em;">d</span></span></span></span><span id="MJXc-Node-133" class="mjx-mo MJXc-space3"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.064em; padding-bottom: 0.308em;">=</span></span><span id="MJXc-Node-134" class="mjx-mfrac MJXc-space3"><span class="mjx-box MJXc-stacked" style="width: 2.788em; padding: 0px 0.12em;"><span class="mjx-numerator" style="font-size: 70.7%; width: 3.943em; top: -1.559em;"><span id="MJXc-Node-135" class="mjx-msubsup" style=""><span class="mjx-base" style="margin-right: -0.003em;"><span id="MJXc-Node-136" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.186em; padding-bottom: 0.308em; padding-right: 0.003em;">π</span></span></span><span class="mjx-sup" style="font-size: 70.7%; vertical-align: 0.513em; padding-left: 0.076em; padding-right: 0.071em;"><span id="MJXc-Node-137" class="mjx-texatom" style=""><span id="MJXc-Node-138" class="mjx-mrow"><span id="MJXc-Node-139" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.003em;">d</span></span><span id="MJXc-Node-140" class="mjx-texatom"><span id="MJXc-Node-141" class="mjx-mrow"><span id="MJXc-Node-142" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.491em; padding-bottom: 0.614em;">/</span></span></span></span><span id="MJXc-Node-143" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">2</span></span></span></span></span></span></span><span class="mjx-denominator" style="font-size: 70.7%; width: 3.943em; bottom: -1.891em;"><span id="MJXc-Node-144" class="mjx-mrow" style=""><span id="MJXc-Node-145" class="mjx-mi"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">Γ</span></span><span id="MJXc-Node-146" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.491em; padding-bottom: 0.614em;">(</span></span><span id="MJXc-Node-147" class="mjx-mstyle" style="font-size: 141.4%;"><span id="MJXc-Node-148" class="mjx-mrow"><span id="MJXc-Node-149" class="mjx-mfrac"><span class="mjx-box MJXc-stacked" style="width: 0.511em; padding: 0px 0.12em;"><span class="mjx-numerator" style="font-size: 70.7%; width: 0.723em; top: -1.366em;"><span id="MJXc-Node-150" class="mjx-mi" style=""><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.003em;">d</span></span></span><span class="mjx-denominator" style="font-size: 70.7%; width: 0.723em; bottom: -0.621em;"><span id="MJXc-Node-151" class="mjx-mn" style=""><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">2</span></span></span><span style="border-bottom: 1.3px solid; top: -0.288em; width: 0.511em;" class="mjx-line"></span></span><span style="height: 1.405em; vertical-align: -0.439em;" class="mjx-vsize"></span></span></span></span><span id="MJXc-Node-152" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.308em; padding-bottom: 0.43em;">+</span></span><span id="MJXc-Node-153" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">1</span></span><span id="MJXc-Node-154" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.491em; padding-bottom: 0.614em;">)</span></span></span></span><span style="border-bottom: 1.3px solid; top: -0.288em; width: 2.788em;" class="mjx-line"></span></span><span style="height: 2.44em; vertical-align: -1.337em;" class="mjx-vsize"></span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>V</mi><mi>d</mi></msub><mo>=</mo><mfrac><msup><mi>π</mi><mrow class="MJX-TeXAtom-ORD"><mi>d</mi><mrow class="MJX-TeXAtom-ORD"><mo>/</mo></mrow><mn>2</mn></mrow></msup><mrow><mi mathvariant="normal">Γ</mi><mo stretchy="false">(</mo><mstyle scriptlevel="0" displaystyle="false"><mfrac><mi>d</mi><mn>2</mn></mfrac></mstyle><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow></mfrac></math></span></span><script type="math/tex" id="MathJax-Element-22">V_d = \frac{\pi^{d/2}}{\Gamma(\tfrac{d}{2}+1)}</script> in a plot. <em>Hint</em>: the Gamma function is available in <code>scipy.special.gamma</code>. <strong>(12 pts)</strong></p>
</div>
</div></div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[10]:</div><div class="panel panel-primary nbgrader_cell">
<a name="comment-cell-82ea663199a69ee2"></a><a name="cell-82ea663199a69ee2"></a><div class="panel-heading"><span class="nbgrader-label">Student's answer</span><span class="pull-right">
Score: 11.0 / 12.0 <a href="#top">(Top)</a>
</span></div>
<div class="panel-body">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">scipy.special</span>
<span class="k">def</span> <span class="nf">volume_d_ball</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
<span class="sd">"""Returns the volume of a d-dimensional unit ball."""</span>
<span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="o">**</span><span class="p">(</span><span class="n">d</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="n">scipy</span><span class="o">.</span><span class="n">special</span><span class="o">.</span><span class="n">gamma</span><span class="p">(</span><span class="n">d</span><span class="o">/</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">N</span> <span class="o">=</span> <span class="mi">10000</span>
<span class="n">d_range</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">8</span><span class="p">))</span>
<span class="n">V_d_mc</span> <span class="o">=</span> <span class="p">[</span><span class="n">number_of_hits_in_d_dimensions</span><span class="p">(</span><span class="n">N</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span><span class="o">/</span><span class="n">N</span><span class="o">*</span><span class="mi">2</span><span class="o">**</span><span class="n">d</span> <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">d_range</span><span class="p">]</span>
<span class="c1">## Plotting</span>
<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">d_range</span><span class="p">,</span> <span class="n">V_d_mc</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">"direct-sampling"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">d_range</span><span class="p">,</span> <span class="n">volume_d_ball</span><span class="p">(</span><span class="n">d_range</span><span class="p">),</span> <span class="n">label</span><span class="o">=</span><span class="s2">"exact"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">"dimension $d$"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">"volume $V_d$"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="panel-footer">
<div>
<b>Comments:</b> <p>Use dots</p>
</div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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
">
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Efficiency-of-the-Metropolis-algorithm-and-the-1/2-rule">Efficiency of the Metropolis algorithm and the 1/2-rule<a class="anchor-link" href="#Efficiency-of-the-Metropolis-algorithm-and-the-1/2-rule"></a></h2><p>In
the lecture we mentioned the "1/2 rule" for Metropolis algorithms: if
moves are rarely rejected then typically you do not explore the domain
efficiently, while if most moves are rejected you are wasting efforts
proposing moves. A good rule of thumb then is to aim for a rejection
rate of <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-23-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mo&gt;/&lt;/mo&gt;&lt;/mrow&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-155" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-156" class="mjx-mrow"><span id="MJXc-Node-157" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">1</span></span><span id="MJXc-Node-158" class="mjx-texatom"><span id="MJXc-Node-159" class="mjx-mrow"><span id="MJXc-Node-160" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.491em; padding-bottom: 0.614em;">/</span></span></span></span><span id="MJXc-Node-161" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">2</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>1</mn><mrow class="MJX-TeXAtom-ORD"><mo>/</mo></mrow><mn>2</mn></math></span></span><script type="math/tex" id="MathJax-Element-23">1/2</script>.
In this exercise you are asked to test whether this rule of thumb makes
any sense for the Markov-chain pebble game by varying the throwing
range <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-24-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;&amp;#x03B4;&lt;/mi&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-162" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-163" class="mjx-mrow"><span id="MJXc-Node-164" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.007em;">δ</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>δ</mi></math></span></span><script type="math/tex" id="MathJax-Element-24">\delta</script>.</p>
<p><strong>(a)</strong> Estimate the mean square deviation <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-25-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;double-struck&quot;&gt;E&lt;/mi&gt;&lt;/mrow&gt;&lt;mo stretchy=&quot;false&quot;&gt;[&lt;/mo&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mstyle displaystyle=&quot;false&quot; scriptlevel=&quot;0&quot;&gt;&lt;mfrac&gt;&lt;mrow&gt;&lt;mn&gt;4&lt;/mn&gt;&lt;mtext&gt;hits&lt;/mtext&gt;&lt;/mrow&gt;&lt;mtext&gt;trials&lt;/mtext&gt;&lt;/mfrac&gt;&lt;/mstyle&gt;&lt;mo&gt;&amp;#x2212;&lt;/mo&gt;&lt;mi&gt;&amp;#x03C0;&lt;/mi&gt;&lt;msup&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msup&gt;&lt;mo stretchy=&quot;false&quot;&gt;]&lt;/mo&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-165" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-166" class="mjx-mrow"><span id="MJXc-Node-167" class="mjx-texatom"><span id="MJXc-Node-168" class="mjx-mrow"><span id="MJXc-Node-169" class="mjx-mi"><span class="mjx-char MJXc-TeX-ams-R" style="padding-top: 0.43em; padding-bottom: 0.308em;">E</span></span></span></span><span id="MJXc-Node-170" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.491em; padding-bottom: 0.614em;">[</span></span><span id="MJXc-Node-171" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.491em; padding-bottom: 0.614em;">(</span></span><span id="MJXc-Node-172" class="mjx-mstyle"><span id="MJXc-Node-173" class="mjx-mrow"><span id="MJXc-Node-174" class="mjx-mfrac"><span class="mjx-box MJXc-stacked" style="width: 1.719em; padding: 0px 0.12em;"><span class="mjx-numerator" style="font-size: 70.7%; width: 2.431em; top: -1.367em;"><span id="MJXc-Node-175" class="mjx-mrow" style=""><span id="MJXc-Node-176" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">4</span></span><span id="MJXc-Node-177" class="mjx-mtext"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.43em; padding-bottom: 0.369em;">hits</span></span></span></span><span class="mjx-denominator" style="font-size: 70.7%; width: 2.431em; bottom: -0.66em;"><span id="MJXc-Node-178" class="mjx-mtext" style=""><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.43em; padding-bottom: 0.369em;">trials</span></span></span><span style="border-bottom: 1.3px solid; top: -0.288em; width: 1.719em;" class="mjx-line"></span></span><span style="height: 1.433em; vertical-align: -0.466em;" class="mjx-vsize"></span></span></span></span><span id="MJXc-Node-179" class="mjx-mo MJXc-space2"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.308em; padding-bottom: 0.43em;"></span></span><span id="MJXc-Node-180" class="mjx-mi MJXc-space2"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.186em; padding-bottom: 0.308em; padding-right: 0.003em;">π</span></span><span id="MJXc-Node-181" class="mjx-msubsup"><span class="mjx-base"><span id="MJXc-Node-182" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.491em; padding-bottom: 0.614em;">)</span></span></span><span class="mjx-sup" style="font-size: 70.7%; vertical-align: 0.513em; padding-left: 0px; padding-right: 0.071em;"><span id="MJXc-Node-183" class="mjx-mn" style=""><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">2</span></span></span></span><span id="MJXc-Node-184" class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.491em; padding-bottom: 0.614em;">]</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow class="MJX-TeXAtom-ORD"><mi mathvariant="double-struck">E</mi></mrow><mo stretchy="false">[</mo><mo stretchy="false">(</mo><mstyle scriptlevel="0" displaystyle="false"><mfrac><mrow><mn>4</mn><mtext>hits</mtext></mrow><mtext>trials</mtext></mfrac></mstyle><mo></mo><mi>π</mi><msup><mo stretchy="false">)</mo><mn>2</mn></msup><mo stretchy="false">]</mo></math></span></span><script type="math/tex" id="MathJax-Element-25">\mathbb{E}[(\tfrac{4\text{hits}}{\text{trials}} - \pi)^2 ]</script> from <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-26-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;&amp;#x03C0;&lt;/mi&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-185" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-186" class="mjx-mrow"><span id="MJXc-Node-187" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.186em; padding-bottom: 0.308em; padding-right: 0.003em;">π</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>π</mi></math></span></span><script type="math/tex" id="MathJax-Element-26">\pi</script> for different values of <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-27-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;&amp;#x03B4;&lt;/mi&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-188" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-189" class="mjx-mrow"><span id="MJXc-Node-190" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.007em;">δ</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>δ</mi></math></span></span><script type="math/tex" id="MathJax-Element-27">\delta</script> ranging between <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-28-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mn&gt;0&lt;/mn&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-191" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-192" class="mjx-mrow"><span id="MJXc-Node-193" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">0</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>0</mn></math></span></span><script type="math/tex" id="MathJax-Element-28">0</script> and <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-29-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mn&gt;3&lt;/mn&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-194" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-195" class="mjx-mrow"><span id="MJXc-Node-196" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">3</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>3</mn></math></span></span><script type="math/tex" id="MathJax-Element-29">3</script>, but fixed number of trials (say, 2000). For a decent estimate of the mean you will need at least <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-30-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mn&gt;100&lt;/mn&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-197" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-198" class="mjx-mrow"><span id="MJXc-Node-199" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.369em; padding-bottom: 0.369em;">100</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>100</mn></math></span></span><script type="math/tex" id="MathJax-Element-30">100</script> repetitions. <strong>(14 pts)</strong></p>
</div>
</div></div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[11]:</div><div class="panel panel-primary nbgrader_cell">
<a name="comment-cell-e3762269c892c3df"></a><a name="cell-e3762269c892c3df"></a><div class="panel-heading"><span class="nbgrader-label">Student's answer</span><span class="pull-right">
Score: 14.0 / 14.0 <a href="#top">(Top)</a>
</span></div>
<div class="panel-body">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">N</span> <span class="o">=</span> <span class="mi">2000</span> <span class="c1"># number of trials</span>
<span class="n">m</span> <span class="o">=</span> <span class="mi">200</span> <span class="c1"># number of repetitions</span>
<span class="n">delta_range</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="c1"># throwing ranges</span>
<span class="n">p0</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mf">0.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">])</span> <span class="c1"># starting position in origin</span>
<span class="n">hits</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="nb">len</span><span class="p">(</span><span class="n">delta_range</span><span class="p">),</span> <span class="n">m</span><span class="p">),</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">int</span><span class="p">)</span>
<span class="k">for</span> <span class="n">index_delta</span><span class="p">,</span> <span class="n">delta</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">delta_range</span><span class="p">):</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">m</span><span class="p">):</span>
<span class="n">hits</span><span class="p">[</span><span class="n">index_delta</span><span class="p">][</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">markov_pebble</span><span class="p">(</span><span class="n">p0</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">N</span><span class="p">)</span>
<span class="c1">## Print the results</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"</span><span class="si">{:4}</span><span class="s2"> </span><span class="si">{:6}</span><span class="s2"> </span><span class="si">{:8}</span><span class="s2"> </span><span class="si">{:&lt;10}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">'N'</span><span class="p">,</span><span class="s1">'delta'</span><span class="p">,</span><span class="s1">'4*hits/trials'</span><span class="p">,</span><span class="s1">'E[(4*hits/trials - pi)^2]'</span><span class="p">))</span>
<span class="k">for</span> <span class="n">index_delta</span><span class="p">,</span> <span class="n">delta</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">delta_range</span><span class="p">):</span>
<span class="n">pi_estimates</span> <span class="o">=</span> <span class="n">hits</span><span class="p">[</span><span class="n">index_delta</span><span class="p">]</span><span class="o">/</span><span class="n">N</span><span class="o">*</span><span class="mi">4</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"</span><span class="si">{:4}</span><span class="s2"> </span><span class="si">{:1.4f}</span><span class="s2"> </span><span class="si">{:1.4f}</span><span class="s2"> </span><span class="si">{:1.3f}</span><span class="s2">"</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">N</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">pi_estimates</span><span class="p">),</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">((</span><span class="n">pi_estimates</span> <span class="o">-</span> <span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="p">)))</span>
</pre></div>
</div>
</div>
<div class="panel-footer">
<div>
<b>Comments:</b> <p>Nice formatting</p>
</div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_text output_error">
<pre><span class="ansi-red-fg">---------------------------------------------------------------------------</span>
<span class="ansi-red-fg">KeyboardInterrupt</span> Traceback (most recent call last)
Input <span class="ansi-green-fg">In [11]</span>, in <span class="ansi-cyan-fg">&lt;cell line: 8&gt;</span><span class="ansi-blue-fg">()</span>
<span class="ansi-green-intense-fg ansi-bold"> 8</span> <span class="ansi-bold" style="color: rgb(0,135,0)">for</span> index_delta, delta <span class="ansi-bold" style="color: rgb(175,0,255)">in</span> <span style="color: rgb(0,135,0)">enumerate</span>(delta_range):
<span class="ansi-green-intense-fg ansi-bold"> 9</span> <span class="ansi-bold" style="color: rgb(0,135,0)">for</span> i <span class="ansi-bold" style="color: rgb(175,0,255)">in</span> <span style="color: rgb(0,135,0)">range</span>(m):
<span class="ansi-green-fg">---&gt; 10</span> hits[index_delta][i] <span style="color: rgb(98,98,98)">=</span> <span class="ansi-yellow-bg">markov_pebble</span><span class="ansi-yellow-bg">(</span><span class="ansi-yellow-bg">p0</span><span class="ansi-yellow-bg">,</span><span class="ansi-yellow-bg"> </span><span class="ansi-yellow-bg">delta</span><span class="ansi-yellow-bg">,</span><span class="ansi-yellow-bg"> </span><span class="ansi-yellow-bg">N</span><span class="ansi-yellow-bg">)</span>
<span class="ansi-green-intense-fg ansi-bold"> 12</span> <span style="color: rgb(95,135,135)">## Print the results</span>
<span class="ansi-green-intense-fg ansi-bold"> 13</span> <span style="color: rgb(0,135,0)">print</span>(<span style="color: rgb(175,0,0)">"</span><span class="ansi-bold" style="color: rgb(175,95,135)">{:4}</span><span style="color: rgb(175,0,0)"> </span><span class="ansi-bold" style="color: rgb(175,95,135)">{:6}</span><span style="color: rgb(175,0,0)"> </span><span class="ansi-bold" style="color: rgb(175,95,135)">{:8}</span><span style="color: rgb(175,0,0)"> </span><span class="ansi-bold" style="color: rgb(175,95,135)">{:&lt;10}</span><span style="color: rgb(175,0,0)">"</span><span style="color: rgb(98,98,98)">.</span>format(<span style="color: rgb(175,0,0)">'</span><span style="color: rgb(175,0,0)">N</span><span style="color: rgb(175,0,0)">'</span>,<span style="color: rgb(175,0,0)">'</span><span style="color: rgb(175,0,0)">delta</span><span style="color: rgb(175,0,0)">'</span>,<span style="color: rgb(175,0,0)">'</span><span style="color: rgb(175,0,0)">4*hits/trials</span><span style="color: rgb(175,0,0)">'</span>,<span style="color: rgb(175,0,0)">'</span><span style="color: rgb(175,0,0)">E[(4*hits/trials - pi)^2]</span><span style="color: rgb(175,0,0)">'</span>))
Input <span class="ansi-green-fg">In [2]</span>, in <span class="ansi-cyan-fg">markov_pebble</span><span class="ansi-blue-fg">(start, delta, N)</span>
<span class="ansi-green-intense-fg ansi-bold"> 70</span> position <span style="color: rgb(98,98,98)">=</span> start
<span class="ansi-green-intense-fg ansi-bold"> 71</span> <span class="ansi-bold" style="color: rgb(0,135,0)">for</span> i <span class="ansi-bold" style="color: rgb(175,0,255)">in</span> <span style="color: rgb(0,135,0)">range</span>(N):
<span class="ansi-green-fg">---&gt; 72</span> position <span style="color: rgb(98,98,98)">=</span> <span class="ansi-yellow-bg">sample_next_position</span><span class="ansi-yellow-bg">(</span><span class="ansi-yellow-bg">position</span><span class="ansi-yellow-bg">,</span><span class="ansi-yellow-bg">delta</span><span class="ansi-yellow-bg">)</span>
<span class="ansi-green-intense-fg ansi-bold"> 73</span> <span class="ansi-bold" style="color: rgb(0,135,0)">if</span> is_in_circle(position):
<span class="ansi-green-intense-fg ansi-bold"> 74</span> number_hits <span style="color: rgb(98,98,98)">+</span><span style="color: rgb(98,98,98)">=</span> <span style="color: rgb(98,98,98)">1</span>
Input <span class="ansi-green-fg">In [2]</span>, in <span class="ansi-cyan-fg">sample_next_position</span><span class="ansi-blue-fg">(position, delta)</span>
<span class="ansi-green-intense-fg ansi-bold"> 59</span> <span class="ansi-bold" style="color: rgb(0,135,0)">def</span> <span style="color: rgb(0,0,255)">sample_next_position</span>(position,delta):
<span class="ansi-green-intense-fg ansi-bold"> 60</span> <span style="color: rgb(175,0,0)">"""Attempt a throw and reject when outside the square."""</span>
<span class="ansi-green-fg">---&gt; 61</span> next_position <span style="color: rgb(98,98,98)">=</span> position <span style="color: rgb(98,98,98)">+</span> delta<span style="color: rgb(98,98,98)">*</span><span class="ansi-yellow-bg">random_in_disk</span><span class="ansi-yellow-bg">(</span><span class="ansi-yellow-bg">)</span>
<span class="ansi-green-intense-fg ansi-bold"> 62</span> <span class="ansi-bold" style="color: rgb(0,135,0)">if</span> is_in_square(next_position):
<span class="ansi-green-intense-fg ansi-bold"> 63</span> <span class="ansi-bold" style="color: rgb(0,135,0)">return</span> next_position <span style="color: rgb(95,135,135)"># accept!</span>
Input <span class="ansi-green-fg">In [2]</span>, in <span class="ansi-cyan-fg">random_in_disk</span><span class="ansi-blue-fg">()</span>
<span class="ansi-green-intense-fg ansi-bold"> 23</span> <span class="ansi-bold" style="color: rgb(0,135,0)">def</span> <span style="color: rgb(0,0,255)">random_in_disk</span>():
<span class="ansi-green-intense-fg ansi-bold"> 24</span> <span style="color: rgb(175,0,0)">"""Returns a uniform point in the unit disk via rejection."""</span>
<span class="ansi-green-fg">---&gt; 25</span> position <span style="color: rgb(98,98,98)">=</span> <span class="ansi-yellow-bg">random_in_square</span><span class="ansi-yellow-bg">(</span><span class="ansi-yellow-bg">)</span>
<span class="ansi-green-intense-fg ansi-bold"> 26</span> <span class="ansi-bold" style="color: rgb(0,135,0)">while</span> <span class="ansi-bold" style="color: rgb(175,0,255)">not</span> is_in_circle(position):
<span class="ansi-green-intense-fg ansi-bold"> 27</span> position <span style="color: rgb(98,98,98)">=</span> random_in_square()
Input <span class="ansi-green-fg">In [2]</span>, in <span class="ansi-cyan-fg">random_in_square</span><span class="ansi-blue-fg">()</span>
<span class="ansi-green-intense-fg ansi-bold"> 7</span> <span class="ansi-bold" style="color: rgb(0,135,0)">def</span> <span style="color: rgb(0,0,255)">random_in_square</span>():
<span class="ansi-green-intense-fg ansi-bold"> 8</span> <span style="color: rgb(175,0,0)">"""Returns a random position in the square [-1,1)x[-1,1)."""</span>
<span class="ansi-green-fg">----&gt; 9</span> <span class="ansi-bold" style="color: rgb(0,135,0)">return</span> <span class="ansi-yellow-bg">rng</span><span class="ansi-yellow-bg" style="color: rgb(98,98,98)">.</span><span class="ansi-yellow-bg">uniform</span><span class="ansi-yellow-bg">(</span><span class="ansi-yellow-bg" style="color: rgb(98,98,98)">-</span><span class="ansi-yellow-bg" style="color: rgb(98,98,98)">1</span><span class="ansi-yellow-bg">,</span><span class="ansi-yellow-bg" style="color: rgb(98,98,98)">1</span><span class="ansi-yellow-bg">,</span><span class="ansi-yellow-bg" style="color: rgb(98,98,98)">2</span><span class="ansi-yellow-bg">)</span>
<span class="ansi-red-fg">KeyboardInterrupt</span>: </pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>(b)</strong> Measure the rejection rate for the same simulations as in (a). <strong>(14 pts)</strong></p>
</div>
</div></div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[12]:</div><div class="panel panel-primary nbgrader_cell">
<a name="comment-cell-9726c572b9859251"></a><a name="cell-9726c572b9859251"></a><div class="panel-heading"><span class="nbgrader-label">Student's answer</span><span class="pull-right">
Score: 14.0 / 14.0 <a href="#top">(Top)</a>
</span></div>
<div class="panel-body">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># To calculate the rejection rate, we need to know the positions. I will copy</span>
<span class="c1"># and adapt the above code and the code in the markov_pebble function as is</span>
<span class="c1"># provided at the beginning of this document.</span>
<span class="n">N</span> <span class="o">=</span> <span class="mi">2000</span> <span class="c1"># number of trials</span>
<span class="n">m</span> <span class="o">=</span> <span class="mi">200</span> <span class="c1"># number of repetitions</span>
<span class="n">delta_range</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="c1"># throwing ranges</span>
<span class="n">p0</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mf">0.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">])</span> <span class="c1"># starting position in origin</span>
<span class="n">hits</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="nb">len</span><span class="p">(</span><span class="n">delta_range</span><span class="p">),</span> <span class="n">m</span><span class="p">),</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">int</span><span class="p">)</span>
<span class="n">rejections</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="nb">len</span><span class="p">(</span><span class="n">delta_range</span><span class="p">),</span> <span class="n">m</span><span class="p">),</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">int</span><span class="p">)</span>
<span class="k">for</span> <span class="n">index_delta</span><span class="p">,</span> <span class="n">delta</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">delta_range</span><span class="p">):</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">m</span><span class="p">):</span>
<span class="n">prev_position</span> <span class="o">=</span> <span class="kc">None</span>
<span class="k">for</span> <span class="n">position</span> <span class="ow">in</span> <span class="n">markov_pebble_generator</span><span class="p">(</span><span class="n">p0</span><span class="p">,</span><span class="n">delta</span><span class="p">,</span><span class="n">N</span><span class="p">):</span>
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">all</span><span class="p">(</span><span class="n">position</span> <span class="o">==</span> <span class="n">prev_position</span><span class="p">):</span>
<span class="n">rejections</span><span class="p">[</span><span class="n">index_delta</span><span class="p">][</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">if</span> <span class="n">is_in_circle</span><span class="p">(</span><span class="n">position</span><span class="p">):</span>
<span class="n">hits</span><span class="p">[</span><span class="n">index_delta</span><span class="p">][</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="n">prev_position</span> <span class="o">=</span> <span class="n">position</span>
<span class="c1">## Print the results</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"</span><span class="si">{:4}</span><span class="s2"> </span><span class="si">{:6}</span><span class="s2"> </span><span class="si">{:8}</span><span class="s2"> </span><span class="si">{:&lt;10}</span><span class="s2"> </span><span class="si">{:&lt;10}</span><span class="s2">"</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">'N'</span><span class="p">,</span><span class="s1">'delta'</span><span class="p">,</span><span class="s1">'4*hits/trials'</span><span class="p">,</span><span class="s1">'E[(4*hits/trials - pi)^2]'</span><span class="p">,</span> <span class="s1">'rejection rate'</span><span class="p">))</span>
<span class="k">for</span> <span class="n">index_delta</span><span class="p">,</span> <span class="n">delta</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">delta_range</span><span class="p">):</span>
<span class="n">pi_estimates</span> <span class="o">=</span> <span class="n">hits</span><span class="p">[</span><span class="n">index_delta</span><span class="p">]</span><span class="o">/</span><span class="n">N</span><span class="o">*</span><span class="mi">4</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"</span><span class="si">{:4}</span><span class="s2"> </span><span class="si">{:1.4f}</span><span class="s2"> </span><span class="si">{:1.4f}</span><span class="s2"> </span><span class="si">{:1.3f}</span><span class="s2"> </span><span class="si">{:1.3f}</span><span class="s2">"</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">N</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">pi_estimates</span><span class="p">),</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">((</span><span class="n">pi_estimates</span> <span class="o">-</span> <span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="p">),</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">rejections</span><span class="p">[</span><span class="n">index_delta</span><span class="p">]</span><span class="o">/</span><span class="n">N</span><span class="p">)))</span>
</pre></div>
</div>
</div>
<div class="panel-footer">
<div>
<b>Comments:</b> <p>Nice formatting</p>
</div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_text output_error">
<pre><span class="ansi-red-fg">---------------------------------------------------------------------------</span>
<span class="ansi-red-fg">KeyboardInterrupt</span> Traceback (most recent call last)
Input <span class="ansi-green-fg">In [12]</span>, in <span class="ansi-cyan-fg">&lt;cell line: 13&gt;</span><span class="ansi-blue-fg">()</span>
<span class="ansi-green-intense-fg ansi-bold"> 15</span> prev_position <span style="color: rgb(98,98,98)">=</span> <span class="ansi-bold" style="color: rgb(0,135,0)">None</span>
<span class="ansi-green-intense-fg ansi-bold"> 16</span> <span class="ansi-bold" style="color: rgb(0,135,0)">for</span> position <span class="ansi-bold" style="color: rgb(175,0,255)">in</span> markov_pebble_generator(p0,delta,N):
<span class="ansi-green-fg">---&gt; 17</span> <span class="ansi-bold" style="color: rgb(0,135,0)">if</span> <span class="ansi-yellow-bg">np</span><span class="ansi-yellow-bg" style="color: rgb(98,98,98)">.</span><span class="ansi-yellow-bg">all</span><span class="ansi-yellow-bg">(</span><span class="ansi-yellow-bg">position</span><span class="ansi-yellow-bg"> </span><span class="ansi-yellow-bg" style="color: rgb(98,98,98)">==</span><span class="ansi-yellow-bg"> </span><span class="ansi-yellow-bg">prev_position</span><span class="ansi-yellow-bg">)</span>:
<span class="ansi-green-intense-fg ansi-bold"> 18</span> rejections[index_delta][i] <span style="color: rgb(98,98,98)">+</span><span style="color: rgb(98,98,98)">=</span> <span style="color: rgb(98,98,98)">1</span>
<span class="ansi-green-intense-fg ansi-bold"> 19</span> <span class="ansi-bold" style="color: rgb(0,135,0)">if</span> is_in_circle(position):
File <span class="ansi-green-fg">&lt;__array_function__ internals&gt;:5</span>, in <span class="ansi-cyan-fg">all</span><span class="ansi-blue-fg">(*args, **kwargs)</span>
File <span class="ansi-green-fg">/opt/jupyter-conda/lib/python3.9/site-packages/numpy/core/fromnumeric.py:2450</span>, in <span class="ansi-cyan-fg">all</span><span class="ansi-blue-fg">(a, axis, out, keepdims, where)</span>
<span class="ansi-green-intense-fg ansi-bold"> 2367</span> <span style="color: rgb(175,0,255)">@array_function_dispatch</span>(_all_dispatcher)
<span class="ansi-green-intense-fg ansi-bold"> 2368</span> <span class="ansi-bold" style="color: rgb(0,135,0)">def</span> <span style="color: rgb(0,0,255)">all</span>(a, axis<span style="color: rgb(98,98,98)">=</span><span class="ansi-bold" style="color: rgb(0,135,0)">None</span>, out<span style="color: rgb(98,98,98)">=</span><span class="ansi-bold" style="color: rgb(0,135,0)">None</span>, keepdims<span style="color: rgb(98,98,98)">=</span>np<span style="color: rgb(98,98,98)">.</span>_NoValue, <span style="color: rgb(98,98,98)">*</span>, where<span style="color: rgb(98,98,98)">=</span>np<span style="color: rgb(98,98,98)">.</span>_NoValue):
<span class="ansi-green-intense-fg ansi-bold"> 2369</span> <span style="color: rgb(175,0,0)">"""</span>
<span class="ansi-green-intense-fg ansi-bold"> 2370</span> <span style="color: rgb(175,0,0)"> Test whether all array elements along a given axis evaluate to True.</span>
<span class="ansi-green-intense-fg ansi-bold"> 2371</span>
<span class="ansi-green-fg"> (...)</span>
<span class="ansi-green-intense-fg ansi-bold"> 2448</span>
<span class="ansi-green-intense-fg ansi-bold"> 2449</span> <span style="color: rgb(175,0,0)"> """</span>
<span class="ansi-green-fg">-&gt; 2450</span> <span class="ansi-bold" style="color: rgb(0,135,0)">return</span> <span class="ansi-yellow-bg">_wrapreduction</span><span class="ansi-yellow-bg">(</span><span class="ansi-yellow-bg">a</span><span class="ansi-yellow-bg">,</span><span class="ansi-yellow-bg"> </span><span class="ansi-yellow-bg">np</span><span class="ansi-yellow-bg" style="color: rgb(98,98,98)">.</span><span class="ansi-yellow-bg">logical_and</span><span class="ansi-yellow-bg">,</span><span class="ansi-yellow-bg"> </span><span class="ansi-yellow-bg" style="color: rgb(175,0,0)">'</span><span class="ansi-yellow-bg" style="color: rgb(175,0,0)">all</span><span class="ansi-yellow-bg" style="color: rgb(175,0,0)">'</span><span class="ansi-yellow-bg">,</span><span class="ansi-yellow-bg"> </span><span class="ansi-yellow-bg">axis</span><span class="ansi-yellow-bg">,</span><span class="ansi-yellow-bg"> </span><span class="ansi-yellow-bg ansi-bold" style="color: rgb(0,135,0)">None</span><span class="ansi-yellow-bg">,</span><span class="ansi-yellow-bg"> </span><span class="ansi-yellow-bg">out</span><span class="ansi-yellow-bg">,</span>
<span class="ansi-green-intense-fg ansi-bold"> 2451</span> <span class="ansi-yellow-bg"> </span><span class="ansi-yellow-bg">keepdims</span><span class="ansi-yellow-bg" style="color: rgb(98,98,98)">=</span><span class="ansi-yellow-bg">keepdims</span><span class="ansi-yellow-bg">,</span><span class="ansi-yellow-bg"> </span><span class="ansi-yellow-bg">where</span><span class="ansi-yellow-bg" style="color: rgb(98,98,98)">=</span><span class="ansi-yellow-bg">where</span><span class="ansi-yellow-bg">)</span>
File <span class="ansi-green-fg">/opt/jupyter-conda/lib/python3.9/site-packages/numpy/core/fromnumeric.py:86</span>, in <span class="ansi-cyan-fg">_wrapreduction</span><span class="ansi-blue-fg">(obj, ufunc, method, axis, dtype, out, **kwargs)</span>
<span class="ansi-green-intense-fg ansi-bold"> 83</span> <span class="ansi-bold" style="color: rgb(0,135,0)">else</span>:
<span class="ansi-green-intense-fg ansi-bold"> 84</span> <span class="ansi-bold" style="color: rgb(0,135,0)">return</span> reduction(axis<span style="color: rgb(98,98,98)">=</span>axis, out<span style="color: rgb(98,98,98)">=</span>out, <span style="color: rgb(98,98,98)">*</span><span style="color: rgb(98,98,98)">*</span>passkwargs)
<span class="ansi-green-fg">---&gt; 86</span> <span class="ansi-bold" style="color: rgb(0,135,0)">return</span> <span class="ansi-yellow-bg">ufunc</span><span class="ansi-yellow-bg" style="color: rgb(98,98,98)">.</span><span class="ansi-yellow-bg">reduce</span><span class="ansi-yellow-bg">(</span><span class="ansi-yellow-bg">obj</span><span class="ansi-yellow-bg">,</span><span class="ansi-yellow-bg"> </span><span class="ansi-yellow-bg">axis</span><span class="ansi-yellow-bg">,</span><span class="ansi-yellow-bg"> </span><span class="ansi-yellow-bg">dtype</span><span class="ansi-yellow-bg">,</span><span class="ansi-yellow-bg"> </span><span class="ansi-yellow-bg">out</span><span class="ansi-yellow-bg">,</span><span class="ansi-yellow-bg"> </span><span class="ansi-yellow-bg" style="color: rgb(98,98,98)">*</span><span class="ansi-yellow-bg" style="color: rgb(98,98,98)">*</span><span class="ansi-yellow-bg">passkwargs</span><span class="ansi-yellow-bg">)</span>
<span class="ansi-red-fg">KeyboardInterrupt</span>: </pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>(c)</strong> Plot both the mean square deviation and the rejection rate as function of <span class="MathJax_Preview" style="color: inherit;"></span><span id="MathJax-Element-31-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 117%; position: relative;" data-mathml="&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;mi&gt;&amp;#x03B4;&lt;/mi&gt;&lt;/math&gt;" role="presentation"><span id="MJXc-Node-200" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-201" class="mjx-mrow"><span id="MJXc-Node-202" class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.491em; padding-bottom: 0.308em; padding-right: 0.007em;">δ</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>δ</mi></math></span></span><script type="math/tex" id="MathJax-Element-31">\delta</script>. How well does the 1/2 rule apply in this situation? <strong>(12 pts)</strong></p>
</div>
</div></div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[13]:</div><div class="panel panel-primary nbgrader_cell">
<a name="comment-cell-0677a8cb2d72d30f"></a><a name="cell-0677a8cb2d72d30f"></a><div class="panel-heading"><span class="nbgrader-label">Student's answer</span><span class="pull-right">
Score: 10.0 / 12.0 <a href="#top">(Top)</a>
</span></div>
<div class="panel-body">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"Mean square deviation and rejection rate of $</span><span class="se">\\</span><span class="s2">pi$ guesses by the Metropolis algorithm for </span><span class="si">{}</span><span class="s2"> trials of each </span><span class="si">{}</span><span class="s2"> repetitions"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">N</span><span class="p">,</span> <span class="n">m</span><span class="p">))</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">delta_range</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">((</span><span class="n">hits</span><span class="o">/</span><span class="n">N</span><span class="o">*</span><span class="mi">4</span> <span class="o">-</span> <span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">),</span> <span class="n">label</span><span class="o">=</span><span class="s2">"$\mathbb</span><span class="si">{E}</span><span class="s2">[(</span><span class="se">\\</span><span class="s2">frac</span><span class="si">{4hits}{trials}</span><span class="s2"> - </span><span class="se">\\</span><span class="s2">pi)^2]$"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">delta_range</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">rejections</span><span class="o">/</span><span class="n">N</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">),</span> <span class="n">label</span><span class="o">=</span><span class="s2">"rejection rate"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">"throwing range $</span><span class="se">\\</span><span class="s2">delta$"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">rc</span><span class="p">(</span><span class="s1">'legend'</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">13</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"The rejection rate is around 1/2 for delta = 1.3333, which also yields near lowest mean square deviation to pi."</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"The rule of thumb works quite nicely in this case, although it does not yields the best result."</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="panel-footer">
<div>
<b>Comments:</b> <p>Good labels. Due to the outlier at 0, we cannot see the minimum MSD in the plot.</p>
</div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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tGk8/fTTXH755a2v33777Vx33XUUFxezdOlSysvLO3S+qWpoaubVFVt4euF65q/cQrODKZ/pz3fOOoKzxw2mqCDf7xJFRCSDKKCLZJF58+Zx9dVXU1JSwnHHHQd4Z9CfeuqpA8Z74oknePLJJwG44447AJg7dy5lZWX8/ve/54YbbmDbtm0MGDAAgFWrVnH44YezcuVK5syZw3333cfw4cMZMWIEAwem/P1OrFq1iilTplBSUkKfPn1Yt24dffv25b333uPCCy/k5ptv5vLLL8c5x0033cS5557Lsccem/L8Otrqrbt5etF6nl+8kW279zGoV3e+ftooLpk0nEP7l/hdnoiIZCgFdJEOdusfllOxqbpDp3nkIb348QXj4o63e/du1q9fzxe+8IWo49TX17N69eqDzj5fffXVAJx//vkAlJWVcffddwPwm9/8BoAZM2YwY8aMFJYgssMOO4yTTz6Zb3/725xyyimcdtpp3HvvvfTq1Yvx48ezcOFCAO69917mzZvHrl27WLVqFddee22H1ZCstrdHzM8zzhgzkEuPH87UIwbQLV89B0VEpH0U0EWySFFREa+++iqvvfYaAJdddhmjRo06YJxt27bRp0+fTq1j+vTpVFZWHvT6HXfcwcyZMw94bfny5YwfPx6AFStWMHr0aMDrXlNYWEhNTQ2zZ89m9uzZnVpzLNFuj/i9c8bw78fp9ogiItKxFNBFOlgiZ7o7w7JlyzjiiCPIz89vPRsOXheXcMXFxdTV1bU+tw78dhznvC9ZnTdvXkLj19bWUldXR9++fVm/fj39+/ensLCwdfi+ffsoKvIv/O7cW89L723k6UUbCASrKSrI47yjhvD5ScM5YWS/Dl13IiIiLRTQRbLE8uXLKSkpiXsLwr59+9LU1ERdXR1FRUU453z78qGKigrGjh0LQCAQaH0MUFVVxYABAygo6No7nuj2iCIi4jcFdJEs8frrr7Ns2TIOP/zw1teuvfZaysrKDhr3rLPO4s0332y9ReK3vvUt5s6d2zrcOcePfvQjbrvttojzuvrqqw8YP1Xh3VuKi4tZsmQJK1asYMyYMbz22mucd9557Z5Hoip31fHc4vU8s2gD67bvpVdRNy47fjiXHD+ccYf07rI6REREFNBFssT9998f8fW2XVwArr/+en75y18yffr01i8fuv322/nzn//MjBkz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
">
</div>
</div>
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>The rejection rate is around 1/2 for delta = 1.3333, which also yields near lowest mean square deviation to pi.
The rule of thumb works quite nicely in this case, although it does not yields the best result.
</pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body></html>