{"id":1006,"date":"2009-02-22T23:36:12","date_gmt":"2009-02-22T14:36:12","guid":{"rendered":"http:\/\/terzeron.com\/?p=1006"},"modified":"2009-02-22T23:36:12","modified_gmt":"2009-02-22T14:36:12","slug":"stl%ec%9d%98-%eb%82%9c%ec%88%98-%eb%b0%9c%ec%83%9d-%eb%b0%a9%eb%b2%95","status":"publish","type":"post","link":"https:\/\/terzeron.com\/?p=1006","title":{"rendered":"STL\uc758 \ub09c\uc218 \ubc1c\uc0dd \ubc29\ubc95"},"content":{"rendered":"<p>C\uc5d0\uc11c random number\ub97c \ubc1c\uc0dd\uc2dc\ud0a4\uae30 \uc704\ud574\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ubc29\ubc95\uc744 \ub9ce\uc774\ub4e4 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n<pre class=\"brush: c\">#include &lt;stdlib.h&gt;\n\n\nint main(void)\n{\nint i;\n\nsrand(time(NULL));\nrand();\n\nfor (i = 0; i &lt; 10; ++i) {\nprintf(\"%d \", rand() % 10);\n}\nprintf(\"\\n\");\n\nreturn 0;\n}\n<\/pre>\n<p>C++\ub3c4 \uc774 srand()\uc640 rand()\ub97c \uc774\uc6a9\ud560 \uc218 \uc788\uc9c0\ub9cc, <a href=\"http:\/\/www.sgi.com\/tech\/stl\/RandomNumberGenerator.html\">SGI\uc5d0\uc11c \uc81c\uc548\ud55c STL \uc2a4\ud399\uc73c\ub85c Random Number Generator\ub77c\ub294 function object(functor)<\/a>\uac00 \uc788\ub2e4.<\/p>\n<pre class=\"brush: c++\">f(N)<\/pre>\n<p>\uc2a4\ud399\uc5d0 \ub530\ub974\uba74 \uc704\uacfc \uac19\uc740 \ud615\ud0dc\uc758 signature\ub97c \uac00\uc9c0\ub294 random number\ub97c \ubc1c\uc0dd\uc2dc\ud0a4\ub294 \ud568\uc218\ub4e4\uc774 \uc81c\uacf5\ub420 \uac83\uc774\ubbc0\ub85c \ub2e4\uc74c\uacfc \uac19\uc740 \ud615\ud0dc\ub294 \uc9c0\uc591\ud55c\ub2e4.<\/p>\n<pre class=\"brush: c\">rand() % N<\/pre>\n<p>\uadf8\ub7ec\ub098 \uad6c\uccb4\uc801\uc778 random number generator functor\ub294 (\ub0b4\uac00 \uc54c\uace0 \uc788\uae30\ub85c\ub294) \ud55c \uac00\uc9c0\ub97c \uc81c\uc678\ud558\uace0\ub294 C++ STL\uc5d0\uc11c\ub294 \uc81c\uacf5\ub418\uc9c0 \uc54a\uace0 \uc788\ub2e4. \ub2e4\ud589\ud788\ub3c4 <a href=\"http:\/\/www.boost.org\/doc\/libs\/1_38_0\/libs\/random\/random-generators.html\">boost library\uc5d0\ub294 \ub2e4\uc591\ud55c generator functor\uac00 \uc81c\uacf5<\/a>\ub418\uace0 \uc788\uc73c\ub2c8 \ud544\uc694\uc5d0 \ub530\ub77c \uc801\uc808\ud788 \uc120\ud0dd\ud574\uc11c \uc0ac\uc6a9\ud558\uba74 \ub41c\ub2e4.<\/p>\n<p>\uad73\uc774 C++ STL\uc5d0\uc11c \ub09c\uc218\uc640 \uad00\ub828\ub41c \uae30\ub2a5\uc744 \ucc3e\uc544\uc11c \uc4f0\uaca0\ub2e4\uba74 \ub450 \uac00\uc9c0 \uc120\ud0dd\uc9c0\uac00 \uc788\ub2e4. \ud558\ub098\ub294 <a href=\"http:\/\/www.sgi.com\/tech\/stl\/subtractive_rng.html\">subtractive_rng\ub77c\ub294 random number generator functor<\/a>\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774\uace0, \ub610 \ud558\ub098\ub294 <a href=\"http:\/\/www.sgi.com\/tech\/stl\/random_sample.html\">random_sample<\/a> \ub610\ub294 random_sample_n\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774\ub2e4.<\/p>\n<p>subtractive_rng\uc758 \uc0ac\uc6a9 \uc608\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4. \uc544\uc8fc \uac04\ub2e8\ud558\ub2e4.<\/p>\n<pre class=\"brush: c++\">#include &lt;iostream&gt;\n#include &lt;ext\/functional&gt;\n\nusing namespace std;\nusing namespace __gnu_cxx;\n\nint main(void)\n{\nsubtractive_rng rng1; \/\/ use the default seed\nfor (int i = 0; i &lt; 10; ++i) {\ncout &lt;&lt; rng1(10) &lt;&lt; \" \";\n}\ncout &lt;&lt; endl;\n\nsubtractive_rng rng2(5);\nfor (int i = 0; i &lt; 10; ++i) {\ncout &lt;&lt; rng2(10) &lt;&lt; \" \";\n}\ncout &lt;&lt; endl;\n\nreturn 0;\n}\n<\/pre>\n<p>\ubc18\uba74\uc5d0 random_sample\uacfc random_sample_n\uc740 \uc54c\uace0\ub9ac\ub4ec(algorithm)\uc774\ub2e4. \uc774 \ub450 \ud568\uc218\ub294 \uc6d0\ubcf8 \ucee8\ud14c\uc774\ub108\uc5d0\uc11c \uc784\uc758\ub85c \ud45c\ubcf8\uc744 \ucd94\ucd9c\ud558\uc5ec \uc0c8\ub85c\uc6b4 \ucee8\ud14c\uc774\ub108\uc5d0 \ubcf5\uc0ac\ud558\ub294 \uae30\ub2a5\uc744 \uc81c\uacf5\ud55c\ub2e4. \uc704\uc5d0\uc11c \uc5b8\uae09\ud55c random number generation\uacfc\ub294 \uc57d\uac04 \uada4\ub97c \ub2ec\ub9ac\ud558\ub294 \uae30\ub2a5\uc774\ub2e4.<\/p>\n<pre class=\"brush: c++\">#include &lt;iostream&gt;\n#include &lt;vector&gt;\n#include &lt;ext\/algorithm&gt;\n\nusing namespace std;\nusing namespace __gnu_cxx;\n\nint main(void)\n{\nvector a;\nfor (int i = 0; i &lt; 10; ++i) {\na.push_back(i);\n}\n\nvector b;\nb.resize(a.size() \/ 2);\nrandom_sample(a.begin(), a.end(), b.begin(), b.end());\nfor (uint i = 0; i &lt; b.size(); ++i) {\ncout &lt;&lt; b[i] &lt;&lt; \" \";\n}\ncout &lt;&lt; endl;\n\nreturn 0;\n}<\/pre>\n<blockquote><p>0 7 2 9 6<\/p><\/blockquote>\n<p><a href=\"http:\/\/www.sgi.com\/tech\/stl\/random_sample.html\">SGI \uc2a4\ud399<\/a>\uc5d0\ub294 \uc5ec\ub7ec\uac00\uc9c0 \uc21c\uc5f4\uc774 \ub098\ud0c0\ub0a0 \uc218 \uc788\ub2e4\uace0 \ud558\ub294\ub370, \uc2e4\uc81c\ub85c \ud14c\uc2a4\ud2b8\ub97c \ubc18\ubcf5\ud574\ubcf4\uba74 \ub3d9\uc77c\ud55c \uac12\uc774 \ub098\uc628\ub2e4. \uc774\ub7ec\ub2c8 random number generator\ub85c \uc0ac\uc6a9\ud558\uae30\uc5d0\ub294 \ubd80\uc801\ud569\ud558\ub2c8 \uc8fc\uc758\ud560 \ud544\uc694\uac00 \uc788\ub2e4.<\/p>\n<p>\uc7ac\ubbf8\uc788\ub294 \uac83\uc740 \uc774 \ud568\uc218\ub294 uniform distribution\uc744 \ub530\ub974\ub824\uace0 \uc560\ub97c \uc4f0\uae30 \ub54c\ubb38\uc5d0, \uc704\uc758 \uc608\uc81c\ucc98\ub7fc \uc6d0\ubcf8 \ucee8\ud14c\uc774\ub108\uc758 \ud06c\uae30\ubcf4\ub2e4 \uc0d8\ud50c\ub9c1 \ud06c\uae30\uac00 \uc791\uc73c\uba74 \uc784\uc758\ub85c \uc0d8\ud50c\ub9c1\ub418\uc9c0\ub9cc, \uc0d8\ud50c\ub9c1 \ud06c\uae30\uac00 \uc6d0\ubcf8\uc758 \ud06c\uae30\uc640 \ub3d9\uc77c\ud558\uba74 \uadf8\ub0e5 \uc6d0\ubcf8\uc758 \uc21c\uc11c \uadf8\ub300\ub85c \uc0d8\ud50c\ub9c1\ub41c\ub2e4.<\/p>\n<p>\ucf54\ub4dc\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \uc218\uc815\ud558\uba74<\/p>\n<pre class=\"brush: c++\"> b.resize(a.size());<\/pre>\n<blockquote><p>0 1 2 3 4 5 6 7 8 9<\/p><\/blockquote>\n<p>\uc774\ub7f0 \uacb0\uacfc\uac00 \ub098\uc628\ub2e4.<\/p>\n<p>\uadf8\ub9ac\uace0 \uc6d0\ubcf8\uc758 \ud06c\uae30\ubcf4\ub2e4 \ub354 \ub9ce\uc774 \uc0d8\ud50c\ub9c1\ud558\uba74 \ub4b7\ubd80\ubd84\uc740 \ubaa8\ub450 0\uc73c\ub85c \ucc44\uc6cc\uc9c4\ub2e4.<\/p>\n<div class=\"fb-background-color\">\n\t\t\t  <div \n\t\t\t  \tclass = \"fb-comments\" \n\t\t\t  \tdata-href = \"https:\/\/terzeron.com\/?p=1006\"\n\t\t\t  \tdata-numposts = \"100\"\n\t\t\t  \tdata-lazy = \"true\"\n\t\t\t\tdata-colorscheme = \"light\"\n\t\t\t\tdata-order-by = \"time\"\n\t\t\t\tdata-mobile=true>\n\t\t\t  <\/div><\/div>\n\t\t  <style>\n\t\t    .fb-background-color {\n\t\t\t\tbackground: #ffffff !important;\n\t\t\t}\n\t\t\t.fb_iframe_widget_fluid_desktop iframe {\n\t\t\t    width: 100% !important;\n\t\t\t}\n\t\t  <\/style>\n\t\t  ","protected":false},"excerpt":{"rendered":"<p>C\uc5d0\uc11c random number\ub97c \ubc1c\uc0dd\uc2dc\ud0a4\uae30 \uc704\ud574\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ubc29\ubc95\uc744 \ub9ce\uc774\ub4e4 \uc0ac\uc6a9\ud55c\ub2e4. #include &lt;stdlib.h&gt; int main(void) { int i; srand(time(NULL)); rand(); for (i = 0; i &lt; 10; ++i) { printf(&#8220;%d &#8220;, rand() % 10); } printf(&#8220;\\n&#8221;); return 0; } C++\ub3c4 \uc774 &hellip; <a href=\"https:\/\/terzeron.com\/?p=1006\">\uacc4\uc18d \uc77d\uae30 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","footnotes":""},"categories":[13],"tags":[],"class_list":["post-1006","post","type-post","status-publish","format-standard","hentry","category-programming"],"_links":{"self":[{"href":"https:\/\/terzeron.com\/index.php?rest_route=\/wp\/v2\/posts\/1006","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/terzeron.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/terzeron.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/terzeron.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/terzeron.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1006"}],"version-history":[{"count":0,"href":"https:\/\/terzeron.com\/index.php?rest_route=\/wp\/v2\/posts\/1006\/revisions"}],"wp:attachment":[{"href":"https:\/\/terzeron.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1006"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/terzeron.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1006"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/terzeron.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1006"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}