{"id":232,"date":"2015-06-22T08:42:53","date_gmt":"2015-06-22T08:42:53","guid":{"rendered":"http:\/\/blog.tiran.info\/?p=232"},"modified":"2015-06-22T08:42:53","modified_gmt":"2015-06-22T08:42:53","slug":"generateur-de-nombres-aleatoires","status":"publish","type":"post","link":"https:\/\/blog.tiran.stream\/?p=232","title":{"rendered":"G\u00e9n\u00e9rateur de nombres al\u00e9atoires"},"content":{"rendered":"<p style=\"text-align: justify;\">Oracle met \u00e0 disposition un <a href=\"https:\/\/fr.wikipedia.org\/wiki\/G%C3%A9n%C3%A9rateur_de_nombres_pseudo-al%C3%A9atoires\" target=\"_blank\">g\u00e9n\u00e9rateur de nombres al\u00e9atoires<\/a> via package <a href=\"http:\/\/docs.oracle.com\/database\/121\/ARPLS\/d_random.htm#ARPLS040\" target=\"_blank\">DBMS_RANDOM<\/a>. A noter que celui-ci n&rsquo;est pas ad\u00e9quat pour une utilisation en cryptographie, dans ce contexte on lui pr\u00e9f\u00e8rera plut\u00f4t le g\u00e9n\u00e9rateur al\u00e9atoire de DBMS_CRYPTO.<\/p>\n<p style=\"text-align: justify;\">En revanche, dans une optique Statistique le package DBMS_RANDOM offre des fonctionnalit\u00e9s int\u00e9ressantes.\u00a0Il supporte la production de nombre suivant deux distributions:<\/p>\n<ul style=\"text-align: justify;\">\n<li><a href=\"https:\/\/fr.wikipedia.org\/wiki\/Loi_uniforme_continue\" target=\"_blank\">Uniforme<\/a><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">La fonction DBMS_RANDOM.VALUE renvoie une valeur \u00e9quiprobable comprise entre les bornes sp\u00e9cifi\u00e9es en argument (par d\u00e9faut 0 et 1).<\/p>\n<p style=\"text-align: justify;\">La requ\u00eate suivante permet par exemple de simuler 10 lancers de d\u00e9s:<\/p>\n<pre>SQL&gt; SELECT TRUNC (DBMS_RANDOM.VALUE (1, 7)) val\n  2  FROM DUAL\n  3  CONNECT BY LEVEL &lt; 11;\n\n       VAL\n----------\n         4\n         6\n         4\n         3\n         6\n         3\n         2\n         5\n         2\n         2\n\n10 rows selected.\n\nSQL&gt;<\/pre>\n<ul>\n<li style=\"text-align: justify;\"><a href=\"https:\/\/fr.wikipedia.org\/wiki\/Loi_normale\" target=\"_blank\">Gaussienne<\/a><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">La fonction DBMS_RANDOM.NORMAL renvoie des\u00a0valeurs selon\u00a0une loi normale centr\u00e9e-r\u00e9duite N(0,1).<\/p>\n<p style=\"text-align: justify;\">La requ\u00eate suivante permet par exemple de simuler \u00e9chantillonnage de 10 personnes dont on mesure le QI qui par <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Quotient_intellectuel\" target=\"_blank\">convention suit une loi N(100,15^2)<\/a>:<\/p>\n<pre>SQL&gt; SELECT ROUND (DBMS_RANDOM.NORMAL * 15 + 100) qi\n  2  FROM DUAL\n  3  CONNECT BY LEVEL &lt; 11;\n\n        QI\n----------\n       133\n        92\n        83\n        91\n       107\n        77\n       106\n       127\n       106\n       102\n\n10 rows selected.\n\nSQL&gt;\n<\/pre>\n<p style=\"text-align: justify;\">On peut initialiser le g\u00e9n\u00e9rateur via un appel pr\u00e9alable \u00e0 la proc\u00e9dure SEED de mani\u00e8re \u00e0 pouvoir produire des s\u00e9ries pr\u00e9visibles dans un contexte de test.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oracle met \u00e0 disposition un g\u00e9n\u00e9rateur de nombres al\u00e9atoires via package DBMS_RANDOM. A noter que celui-ci n&rsquo;est pas ad\u00e9quat pour<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[6,14],"tags":[],"class_list":["post-232","post","type-post","status-publish","format-standard","hentry","category-oracle","category-statistique"],"_links":{"self":[{"href":"https:\/\/blog.tiran.stream\/index.php?rest_route=\/wp\/v2\/posts\/232","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.tiran.stream\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.tiran.stream\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.tiran.stream\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.tiran.stream\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=232"}],"version-history":[{"count":0,"href":"https:\/\/blog.tiran.stream\/index.php?rest_route=\/wp\/v2\/posts\/232\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.tiran.stream\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=232"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.tiran.stream\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=232"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.tiran.stream\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}