{"id":972,"date":"2017-06-06T17:26:13","date_gmt":"2017-06-06T09:26:13","guid":{"rendered":"http:\/\/www.siediyer.cn\/?p=972"},"modified":"2017-06-06T17:26:13","modified_gmt":"2017-06-06T09:26:13","slug":"%e5%9f%ba%e4%ba%8ephp%e4%bb%a3%e7%a0%81%e5%ae%9e%e7%8e%b0%e4%b8%ad%e5%a5%96%e6%a6%82%e7%8e%87%e7%ae%97%e6%b3%95%e5%8f%af%e7%94%a8%e4%ba%8e%e5%88%ae%e5%88%ae%e5%8d%a1%e3%80%81%e5%a4%a7%e8%bd%ac","status":"publish","type":"post","link":"https:\/\/www.siediyer.cn\/?p=972","title":{"rendered":"\u57fa\u4e8ePHP\u4ee3\u7801\u5b9e\u73b0\u4e2d\u5956\u6982\u7387\u7b97\u6cd5\u53ef\u7528\u4e8e\u522e\u522e\u5361\u3001\u5927\u8f6c\u76d8\u7b49\u62bd\u5956\u7b97\u6cd5"},"content":{"rendered":"<p>\u5927\u8f6c\u76d8\u4e2d\u5956\u6982\u7387\u7b97\u6cd5\u5728\u6211\u4eec\u7684\u65e5\u5e38\u751f\u6d3b\u4e2d\uff0c\u7ecf\u5e38\u9047\u5230\uff0c\u90a3\u4e48\u57fa\u4e8ephp\u4ee3\u7801\u662f\u5982\u4f55\u5b9e\u73b0\u4e2d\u5956\u6982\u7387\u7b97\u6cd5\u7684\uff0c\u4e0b\u9762\u901a\u8fc7\u4e00\u6bb5\u4ee3\u7801\u5b9e\u4f8b\u7ed9\u5927\u5bb6\u4ecb\u7ecdphp\u4e2d\u5956\u6982\u7387\u7b97\u6cd5\uff0c\u4ee3\u7801\u7b80\u5355\u6613\u61c2\uff0c\u5e76\u4e14\u9644\u6709\u6ce8\u91ca\uff0c\u5177\u4f53\u4ee3\u7801\u5982\u4e0b\u6240\u793a\uff1a<\/p>\n<pre class=\"lang:default decode:true \">&lt;?php\r\n\/*\r\n * \u7ecf\u5178\u7684\u6982\u7387\u7b97\u6cd5\uff0c\r\n * $proArr\u662f\u4e00\u4e2a\u9884\u5148\u8bbe\u7f6e\u7684\u6570\u7ec4\uff0c\r\n * \u5047\u8bbe\u6570\u7ec4\u4e3a\uff1aarray(100,200,300\uff0c400)\uff0c\r\n * \u5f00\u59cb\u662f\u4ece1,1000 \u8fd9\u4e2a\u6982\u7387\u8303\u56f4\u5185\u7b5b\u9009\u7b2c\u4e00\u4e2a\u6570\u662f\u5426\u5728\u4ed6\u7684\u51fa\u73b0\u6982\u7387\u8303\u56f4\u4e4b\u5185\uff0c \r\n * \u5982\u679c\u4e0d\u5728\uff0c\u5219\u5c06\u6982\u7387\u7a7a\u95f4\uff0c\u4e5f\u5c31\u662fk\u7684\u503c\u51cf\u53bb\u521a\u521a\u7684\u90a3\u4e2a\u6570\u5b57\u7684\u6982\u7387\u7a7a\u95f4\uff0c\r\n * \u5728\u672c\u4f8b\u5f53\u4e2d\u5c31\u662f\u51cf\u53bb100\uff0c\u4e5f\u5c31\u662f\u8bf4\u7b2c\u4e8c\u4e2a\u6570\u662f\u57281\uff0c900\u8fd9\u4e2a\u8303\u56f4\u5185\u7b5b\u9009\u7684\u3002\r\n * \u8fd9\u6837 \u7b5b\u9009\u5230\u6700\u7ec8\uff0c\u603b\u4f1a\u6709\u4e00\u4e2a\u6570\u6ee1\u8db3\u8981\u6c42\u3002\r\n * \u5c31\u76f8\u5f53\u4e8e\u53bb\u4e00\u4e2a\u7bb1\u5b50\u91cc\u6478\u4e1c\u897f\uff0c\r\n * \u7b2c\u4e00\u4e2a\u4e0d\u662f\uff0c\u7b2c\u4e8c\u4e2a\u4e0d\u662f\uff0c\u7b2c\u4e09\u4e2a\u8fd8\u4e0d\u662f\uff0c\u90a3\u6700\u540e\u4e00\u4e2a\u4e00\u5b9a\u662f\u3002\r\n * \u8fd9\u4e2a\u7b97\u6cd5\u7b80\u5355\uff0c\u800c\u4e14\u6548\u7387\u975e\u5e38 \u9ad8\uff0c\r\n * \u5173\u952e\u662f\u8fd9\u4e2a\u7b97\u6cd5\u5df2\u5728\u6211\u4eec\u4ee5\u524d\u7684\u9879\u76ee\u4e2d\u6709\u5e94\u7528\uff0c\u5c24\u5176\u662f\u5927\u6570\u636e\u91cf\u7684\u9879\u76ee\u4e2d\u6548\u7387\u975e\u5e38\u68d2\u3002\r\n *\/\r\nfunction get_rand($proArr) { \r\n $result = ''; \r\n \/\/\u6982\u7387\u6570\u7ec4\u7684\u603b\u6982\u7387\u7cbe\u5ea6 \r\n $proSum = array_sum($proArr); \r\n \/\/\u6982\u7387\u6570\u7ec4\u5faa\u73af \r\n foreach ($proArr as $key =&gt; $proCur) { \r\n  $randNum = mt_rand(1, $proSum); \r\n  if ($randNum &lt;= $proCur) { \r\n   $result = $key; \r\n   break; \r\n  } else { \r\n   $proSum -= $proCur; \r\n  }   \r\n } \r\n unset ($proArr); \r\n return $result; \r\n} \r\n\/*\r\n * \u5956\u9879\u6570\u7ec4\r\n * \u662f\u4e00\u4e2a\u4e8c\u7ef4\u6570\u7ec4\uff0c\u8bb0\u5f55\u4e86\u6240\u6709\u672c\u6b21\u62bd\u5956\u7684\u5956\u9879\u4fe1\u606f\uff0c\r\n * \u5176\u4e2did\u8868\u793a\u4e2d\u5956\u7b49\u7ea7\uff0cprize\u8868\u793a\u5956\u54c1\uff0cv\u8868\u793a\u4e2d\u5956\u6982\u7387\u3002\r\n * \u6ce8\u610f\u5176\u4e2d\u7684v\u5fc5\u987b\u4e3a\u6574\u6570\uff0c\u4f60\u53ef\u4ee5\u5c06\u5bf9\u5e94\u7684 \u5956\u9879\u7684v\u8bbe\u7f6e\u62100\uff0c\u5373\u610f\u5473\u7740\u8be5\u5956\u9879\u62bd\u4e2d\u7684\u51e0\u7387\u662f0\uff0c\r\n * \u6570\u7ec4\u4e2dv\u7684\u603b\u548c\uff08\u57fa\u6570\uff09\uff0c\u57fa\u6570\u8d8a\u5927\u8d8a\u80fd\u4f53\u73b0\u6982\u7387\u7684\u51c6\u786e\u6027\u3002\r\n * \u672c\u4f8b\u4e2dv\u7684\u603b\u548c\u4e3a100\uff0c\u90a3\u4e48\u5e73\u677f\u7535\u8111\u5bf9\u5e94\u7684 \u4e2d\u5956\u6982\u7387\u5c31\u662f1%\uff0c\r\n * \u5982\u679cv\u7684\u603b\u548c\u662f10000\uff0c\u90a3\u4e2d\u5956\u6982\u7387\u5c31\u662f\u4e07\u5206\u4e4b\u4e00\u4e86\u3002\r\n * \r\n *\/\r\n$prize_arr = array( \r\n '0' =&gt; array('id'=&gt;1,'prize'=&gt;'\u5e73\u677f\u7535\u8111','v'=&gt;1), \r\n '1' =&gt; array('id'=&gt;2,'prize'=&gt;'\u6570\u7801\u76f8\u673a','v'=&gt;5), \r\n '2' =&gt; array('id'=&gt;3,'prize'=&gt;'\u97f3\u7bb1\u8bbe\u5907','v'=&gt;10), \r\n '3' =&gt; array('id'=&gt;4,'prize'=&gt;'4G\u4f18\u76d8','v'=&gt;12), \r\n '4' =&gt; array('id'=&gt;5,'prize'=&gt;'10Q\u5e01','v'=&gt;22), \r\n '5' =&gt; array('id'=&gt;6,'prize'=&gt;'\u4e0b\u6b21\u6ca1\u51c6\u5c31\u80fd\u4e2d\u54e6','v'=&gt;50), \r\n); \r\n\/*\r\n * \u6bcf\u6b21\u524d\u7aef\u9875\u9762\u7684\u8bf7\u6c42\uff0cPHP\u5faa\u73af\u5956\u9879\u8bbe\u7f6e\u6570\u7ec4\uff0c\r\n * \u901a\u8fc7\u6982\u7387\u8ba1\u7b97\u51fd\u6570get_rand\u83b7\u53d6\u62bd\u4e2d\u7684\u5956\u9879id\u3002\r\n * \u5c06\u4e2d\u5956\u5956\u54c1\u4fdd\u5b58\u5728\u6570\u7ec4$res['yes']\u4e2d\uff0c\r\n * \u800c\u5269\u4e0b\u7684\u672a\u4e2d\u5956\u7684\u4fe1\u606f\u4fdd\u5b58\u5728$res['no']\u4e2d\uff0c\r\n * \u6700\u540e\u8f93\u51fajson\u4e2a\u6570\u6570\u636e\u7ed9\u524d\u7aef\u9875\u9762\u3002\r\n *\/\r\nforeach ($prize_arr as $key =&gt; $val) { \r\n $arr[$val['id']] = $val['v']; \r\n} \r\n$rid = get_rand($arr); \/\/\u6839\u636e\u6982\u7387\u83b7\u53d6\u5956\u9879id \r\n$res['yes'] = $prize_arr[$rid-1]['prize']; \/\/\u4e2d\u5956\u9879 \r\nunset($prize_arr[$rid-1]); \/\/\u5c06\u4e2d\u5956\u9879\u4ece\u6570\u7ec4\u4e2d\u5254\u9664\uff0c\u5269\u4e0b\u672a\u4e2d\u5956\u9879 \r\nshuffle($prize_arr); \/\/\u6253\u4e71\u6570\u7ec4\u987a\u5e8f \r\nfor($i=0;$i&lt;count($prize_arr);$i++){ \r\n $pr[] = $prize_arr[$i]['prize']; \r\n} \r\n$res['no'] = $pr; \r\nprint_r($res);<\/pre>\n<p><strong>\u4e0b\u9762\u518d\u7ed9\u5927\u5bb6\u5206\u4eab\u4e00\u6bb5\u5b9e\u4f8b\u4ee3\u7801\u57fa\u4e8eJava\u5b9e\u73b0\u4e2d\u5956\u6982\u7387\u8ba1\u7b97<\/strong><\/p>\n<p>\u505a\u79fb\u52a8\u7684\u9879\u76ee\uff0c\u6709\u4e2a\u9700\u6c42\uff0c\u505a\u4e2a\u6447\u5956\u7684\u6d3b\u52a8\uff01\u5176\u4e2d\u4e2d\u5956\u7684\u8ba1\u7b97\u6bd4\u8f83\u6076\u5fc3\uff0c\u7528\u6237\u8981\u6539\u52a8\u5404\u4e2a\u5956\u9879\u7684\u4e2d\u5956\u6982\u7387\uff0c\u800c\u4e14\u6bcf\u5929\u7684\u5956\u9879\u6709\u4e2a\u6570\u9650\u5236\u3002\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u7b49\u5956\uff0c\u6982\u7387\u4e0d\u901a\uff0c\u600e\u4e48\u7b97\u4e00\u4e2a\u7528\u6237\u53c2\u4e0e\u4e86\u4e2d\u6ca1\u4e2d\u5c06\u5462\uff1f\u82e6\u601d\u4e86\u4e00\u4e0b\uff0c\u53ef\u4ee5\u7528Random\u7c7b\u7684 nextInt(int x)\u65b9\u6cd5\u4ea7\u751f\u4e00\u4e2a\u8303\u56f4\u5185\u7684\u968f\u673a\u6570\uff0c\u4ea7\u751f\u5230\u90a3\u4e2a\u533a\u95f4\u5c31\u662f\u51e0\u7b49\u5956\u4e86\uff0c\u4e2d\u5956\u533a\u95f4\u7684\u4ea7\u751f\u662f\u52a8\u6001\u7684\u3002\u8d34\u51fa\u6e90\u4ee3\u7801\uff0c\u4ec5\u4f9b\u53c2\u8003\uff01<\/p>\n<pre class=\"lang:default decode:true \">package Mzone;\r\nimport java.util.ArrayList;\r\nimport java.util.Random;\r\npublic class Mzone {\r\n \/**\r\n * CopyRright(c)2009-04: \r\n * Project: \r\n * Module ID: \r\n * Comments: \u6982\u7387\u8ba1\u7b97\r\n * JDK version used: &lt;JDK1.4&gt;\r\n * Author\uff1ach\r\n * Create Date\uff1a2009-04-20\r\n * Modified By\uff1a \r\n * Modified Date: \r\n * Why &amp; What is modified \r\n * Version: 1.0\r\n *\/\r\n static Random r = new Random();\r\n public static void main(String[] args) {\r\n  \/\/\u5404\u4e2a\u5956\u9879\u7684\u4e2d\u5956\u6982\u7387\u7684\u5206\u6bcd\r\n  Integer _5m = new Integer(5);\r\n  Integer _500m = new Integer(30);\r\n  Integer _ipod = new Integer(500);\r\n  Integer _phone = new Integer(1000);\r\n  Integer _notebook = new Integer(1500);\r\n  Integer _jay = new Integer(50);\r\n  ArrayList list = new ArrayList();\r\n  if(_5m.intValue()!=0)\r\n   list.add(_5m);\r\n  if(_500m.intValue()!=0)\r\n   list.add(_500m);\r\n  if(_ipod.intValue()!=0)\r\n   list.add(_ipod);\r\n  if(_phone.intValue()!=0)\r\n   list.add(_phone);\r\n  if(_notebook.intValue()!=0)\r\n   list.add(_notebook);\r\n  if(_jay.intValue()!=0)\r\n   list.add(_jay);\r\n  \/\/\u8ba1\u7b97\u6700\u5c0f\u516c\u500d\u6570\r\n  int common = getN(list);\r\n  System.out.println(\"\u6700\u5c0f\u516c\u500d\u6570:\"+common);\r\n  int a = 0;int b = 0;int c = 0;int d = 0;int e = 0;int f = 0;int g = 0;\r\n  int first = 0;int second = 0;int third = 0;int four = 0;int fifth = 0;int sixth = 0;\r\n  if(_5m.intValue()!=0){\r\n   first = common\/_5m.intValue();\r\n  }\r\n  if(_500m.intValue()!=0){\r\n   second = first + (common\/_500m.intValue());\r\n  }else second = first;\r\n  if(_ipod.intValue()!=0){\r\n   third = second + (common\/_ipod.intValue());\r\n  }else third = second;\r\n  if(_phone.intValue()!=0){\r\n   four = third + (common\/_phone.intValue());\r\n  }else four = third;\r\n  if(_notebook.intValue()!=0){\r\n   fifth = four + (common\/_notebook.intValue());\r\n  }else fifth = four;\r\n  if(_jay.intValue()!=0){\r\n   sixth = fifth + (common\/_jay.intValue());\r\n  }else sixth = fifth;\r\n  int times = 30000;\/\/\u5faa\u73af\u6b21\u6570\r\n  for(int i = 0;i &lt; times; i++){\r\n   int ri = getRandom(common);\/\/\u4ea7\u751f\u968f\u673a\u6570\r\n   if(ri &gt;= 0 &amp;&amp; ri &lt; first){\r\n    a++;\r\n   }else if(ri &gt;= first &amp;&amp; ri &lt; second){\r\n    b++;\r\n   }else if(ri &gt;= second &amp;&amp; ri &lt; third){\r\n    c++;\r\n   }else if(ri &gt;= third &amp;&amp; ri &lt; four){\r\n    d++;\r\n   }else if(ri &gt;= four &amp;&amp; ri &lt; fifth){\r\n    e++;\r\n   }else if(ri &gt;= fifth &amp;&amp; ri &lt; sixth){\r\n    f++;\r\n   }else{\r\n    g++;\r\n   }\r\n  }\r\n  System.out.println(\"5m\u503c:\" + a + \" 500m\u503c:\" + b + \" ipodMP3:\" + c + \" \u624b\u673a:\" + d + \" \u7b14\u8bb0\u672c\u7535\u8111:\" + e + \" \u6f14\u5531\u4f1a\u95e8\u7968:\" + f + \" \u8c22\u8c22\u53c2\u4e0e:\" + g);\r\n }\r\n \/**\r\n  * \u6c42\u6700\u5927\u516c\u7ea6\u6570\r\n *\/\r\n public static int gcd(int m, int n){\r\n  while (true){\r\n   if ((m = m % n) == 0)\r\n   return n;\r\n   if ((n = n % m) == 0)\r\n   return m;\r\n  }\r\n }\r\n \/**\r\n * \u6c42\u6700\u5c0f\u516c\u500d\u6570\r\n *\/\r\n public static int gys(int z, int y){\r\n  int t = 0;\r\n  int c = 0;\r\n  c = gcd(z,y);\r\n  t = z * y \/ c;\r\n  return t;\r\n }\r\n \/**\r\n  * \u6c42\u51e0\u4e2a\u6570\u7684\u6700\u5c0f\u516c\u500d\u6570\r\n *\/\r\n public static int getN(ArrayList list){\r\n  int t = 1;\r\n  for(int i = 0;i&lt;list.size();i++){\r\n   Integer temp = (Integer)list.get(i);\r\n   t = gys(t,temp.intValue());\r\n  }\r\n  return t; \r\n }\r\n \/**\r\n  * \u4ea7\u751f\u968f\u673a\u6570\r\n *\/\r\n public static int getRandom(int y){\r\n  int result = r.nextInt(y);\r\n  return result;\r\n }\r\n}<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5927\u8f6c\u76d8\u4e2d\u5956\u6982\u7387\u7b97\u6cd5\u5728\u6211\u4eec\u7684\u65e5\u5e38\u751f\u6d3b\u4e2d\uff0c\u7ecf\u5e38\u9047\u5230\uff0c\u90a3\u4e48\u57fa\u4e8ephp\u4ee3\u7801\u662f\u5982\u4f55\u5b9e\u73b0\u4e2d\u5956\u6982\u7387\u7b97\u6cd5\u7684\uff0c\u4e0b\u9762\u901a\u8fc7\u4e00\u6bb5\u4ee3\u7801\u5b9e [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[33],"class_list":["post-972","post","type-post","status-publish","format-standard","hentry","category-php","tag-33"],"_links":{"self":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts\/972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=972"}],"version-history":[{"count":1,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts\/972\/revisions"}],"predecessor-version":[{"id":973,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts\/972\/revisions\/973"}],"wp:attachment":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}