{"id":183,"date":"2016-12-13T18:35:15","date_gmt":"2016-12-13T10:35:15","guid":{"rendered":"http:\/\/www.secondsend.com\/wordpress\/?p=183"},"modified":"2016-12-13T18:35:15","modified_gmt":"2016-12-13T10:35:15","slug":"php%e6%8a%bd%e5%a5%96%e6%a6%82%e7%8e%87%e7%ae%97%e6%b3%95","status":"publish","type":"post","link":"http:\/\/www.homconnect.cn\/?p=183","title":{"rendered":"PHP\u62bd\u5956\u6982\u7387\u7b97\u6cd5"},"content":{"rendered":"<p><code><br \/>\n\/*<br \/>\n* \u4e0d\u540c\u6982\u7387\u7684\u62bd\u5956\u539f\u7406\u5c31\u662f\u628a0\u5230*\uff08\u6bd4\u91cd\u603b\u6570\uff09\u7684\u533a\u95f4\u5206\u5757<br \/>\n* \u5206\u5757\u7684\u4f9d\u636e\u662f\u7269\u54c1\u5360\u6574\u4e2a\u7684\u6bd4\u91cd\uff0c\u518d\u6839\u636e\u968f\u673a\u6570\u79cd\u5b50\u6765\u4ea7\u751f0-* \u4e2d\u7684\u67d0\u4e2a\u6570<br \/>\n* \u5224\u65ad\u8fd9\u4e2a\u6570\u662f\u843d\u5728\u54ea\u4e2a\u533a\u95f4\u4e0a\uff0c\u533a\u95f4\u5bf9\u5e94\u7684\u5c31\u662f\u62bd\u5230\u7684\u90a3\u4e2a\u7269\u54c1\u3002<br \/>\n* \u968f\u673a\u6570\u7406\u8bba\u4e0a\u662f\u6982\u7387\u5747\u7b49\u7684\uff0c\u90a3\u4e48\u76f8\u5e94\u7684\u533a\u95f4\u6240\u542b\u6570\u7684\u591a\u5c11\u5c31\u4f53\u73b0\u4e86\u62bd\u5956\u7269\u54c1\u6982\u7387\u7684\u4e0d\u540c\u3002<br \/>\n*\/<br \/>\nfunction get_rand($proArr)<br \/>\n{<br \/>\n$result = array();<br \/>\nforeach ($proArr as $key =&gt; $val) {<br \/>\n$arr[$key] = $val['v'];<br \/>\n}<br \/>\n$proSum = array_sum($arr); \/\/ \u8ba1\u7b97\u603b\u6743\u91cd<br \/>\n$randNum = mt_rand(1, $proSum);<br \/>\n$d1 = 0;<br \/>\n$d2 = 0;<br \/>\nfor ($i=0; $i &lt; count($arr); $i++) { $d2 += $arr[$i]; if($i==0) { $d1 = 0; } else { $d1 += $arr[$i-1]; } if($randNum &gt;= $d1 &amp;&amp; $randNum &lt;= $d2) { $result = $proArr[$i]; } } unset ($arr); return $result; } \/* * \u4f7f\u7528\u8f83\u591a\u7684\u4e3a\u8fd9\u4e2a\u65b9\u6cd5 *\/ function get_rand1($proArr) { $result = array(); foreach ($proArr as $key =&gt; $val) {<br \/>\n$arr[$key] = $val['v'];<br \/>\n}<br \/>\n\/\/ \u6982\u7387\u6570\u7ec4\u7684\u603b\u6982\u7387<br \/>\n$proSum = array_sum($arr);<br \/>\nasort($arr);<br \/>\n\/\/ \u6982\u7387\u6570\u7ec4\u5faa\u73af<br \/>\nforeach ($arr as $k =&gt; $v) {<br \/>\n$randNum = mt_rand(1, $proSum);<br \/>\nif ($randNum &lt;= $v) { $result = $proArr[$k]; break; } else { $proSum -= $v; } } return $result; } \/* * \u5956\u9879\u6570\u7ec4 * \u5956\u54c1id,\u540d\u79f0\uff0c\u6bd4\u91cd *\/ $arr = array( array('id'=&gt;1,'name'=&gt;'\u7279\u7b49\u5956','v'=&gt;1),<br \/>\narray('id'=&gt;2,'name'=&gt;'\u4e00\u7b49\u5956','v'=&gt;5),<br \/>\narray('id'=&gt;3,'name'=&gt;'\u4e8c\u7b49\u5956','v'=&gt;10),<br \/>\narray('id'=&gt;4,'name'=&gt;'\u4e09\u7b49\u5956','v'=&gt;12),<br \/>\narray('id'=&gt;5,'name'=&gt;'\u56db\u7b49\u5956','v'=&gt;22),<br \/>\narray('id'=&gt;6,'name'=&gt;'\u6ca1\u4e2d\u5956','v'=&gt;50)<br \/>\n); <\/code><\/p>\n<p>\u6d4b\u8bd5\u7ed3\u679c(10000\u6b21)\uff1a<br \/>\nget_rand():<br \/>\ncount_1\uff1a0 count_2\uff1a490 count_3\uff1a1021 count_4\uff1a1172 count_5\uff1a2172 count_6\uff1a5145<br \/>\n\u7279\u7b49\u5956\u4e2d\u5956\u7387\u5168\u4e3a\uff1a0<br \/>\nget_rand1():<br \/>\ncount_1\uff1a92 count_2\uff1a477 count_3\uff1a1017 count_4\uff1a1195 count_5\uff1a2264 count_6\uff1a4955<br \/>\n\u603b\u4f53\u611f\u89c9 get_rand1() \u66f4\u51c6\u786e\u4e9b&#8230;&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\/* * \u4e0d\u540c\u6982\u7387\u7684\u62bd\u5956\u539f\u7406\u5c31\u662f\u628a0\u5230*\uff08\u6bd4\u91cd\u603b\u6570\uff09\u7684\u533a\u95f4\u5206\u5757 * \u5206\u5757\u7684\u4f9d\u636e\u662f\u7269\u54c1\u5360\u6574\u4e2a\u7684\u6bd4\u91cd\uff0c\u518d\u6839\u636e\u968f\u673a\u6570 &hellip; <a href=\"http:\/\/www.homconnect.cn\/?p=183\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u201cPHP\u62bd\u5956\u6982\u7387\u7b97\u6cd5\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,22],"tags":[],"_links":{"self":[{"href":"http:\/\/www.homconnect.cn\/index.php?rest_route=\/wp\/v2\/posts\/183"}],"collection":[{"href":"http:\/\/www.homconnect.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.homconnect.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.homconnect.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.homconnect.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=183"}],"version-history":[{"count":1,"href":"http:\/\/www.homconnect.cn\/index.php?rest_route=\/wp\/v2\/posts\/183\/revisions"}],"predecessor-version":[{"id":184,"href":"http:\/\/www.homconnect.cn\/index.php?rest_route=\/wp\/v2\/posts\/183\/revisions\/184"}],"wp:attachment":[{"href":"http:\/\/www.homconnect.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.homconnect.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=183"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.homconnect.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}