{"id":113,"date":"2016-09-23T22:46:17","date_gmt":"2016-09-23T14:46:17","guid":{"rendered":"http:\/\/xlight.me\/blog\/?p=113"},"modified":"2017-01-17T08:53:08","modified_gmt":"2017-01-17T00:53:08","slug":"%e5%bf%ab%e9%80%9f%e8%ae%a1%e7%ae%97%e4%bb%8en%e4%b8%ad%e4%bb%bb%e9%80%89m%e7%9a%84%e6%89%80%e6%9c%89%e7%bb%84%e5%90%88","status":"publish","type":"post","link":"https:\/\/xlight.me\/blog\/2016\/09\/%e5%bf%ab%e9%80%9f%e8%ae%a1%e7%ae%97%e4%bb%8en%e4%b8%ad%e4%bb%bb%e9%80%89m%e7%9a%84%e6%89%80%e6%9c%89%e7%bb%84%e5%90%88\/","title":{"rendered":"\u5feb\u901f\u8ba1\u7b97\u4ecen\u4e2d\u4efb\u9009m\u7684\u6240\u6709\u7ec4\u5408"},"content":{"rendered":"<h6>\u6765\u6e90\uff1a\u00a0<a href=\"http:\/\/lifesinger.org\/blog\/2009\/09\/javascript-quick-combine\/\" rel=\"nofollow\">http:\/\/lifesinger.org\/blog\/2009\/09\/javascript-quick-combine\/<sup><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.okooo.net\/images\/icons\/linkext7.gif\" alt=\"\" width=\"7\" height=\"7\" align=\"absmiddle\" border=\"0\" \/><\/sup><\/a><\/h6>\n<p>Posted on September 25th, 2009 in\u00a0<a href=\"http:\/\/lifesinger.org\/blog\/category\/front-develop\/\" rel=\"nofollow\">\u524d\u7aef\u5f00\u53d1<sup><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.okooo.net\/images\/icons\/linkext7.gif\" alt=\"\" width=\"7\" height=\"7\" align=\"absmiddle\" border=\"0\" \/><\/sup><\/a>\u00a0by lifesinger<\/p>\n<div>\n<div>\n<div id=\"highlighter_613777\">\n<div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\/**<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0<\/code><code>* \u5feb\u901f\u7ec4\u5408\u7b97\u6cd5<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0<\/code><code>* \u4ece n \u4e2d\u4efb\u9009 m(0 &lt; m &lt;= n) \u4e2a\u6570\u7684\u6240\u6709\u7ec4\u5408<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0<\/code><code>*\/<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>function quick_combine(n, m) {<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>var t = ((<\/code><code>1<\/code>\u00a0<code>&lt;&lt; n) - (<\/code><code>1<\/code>\u00a0<code>&lt;&lt; n - m)).toString(<\/code><code>2<\/code><code>),<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>r = [], s, p1, p2;<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>while<\/code><code>((r.push(t), p1 = t.indexOf(<\/code><code>\"10\"<\/code><code>)) &gt;=\u00a0<\/code><code>0<\/code><code>) {<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>s\u00a0 = t.slice(<\/code><code>0<\/code><code>, p1);<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>p2 = s.indexOf(<\/code><code>\"1\"<\/code><code>);<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>t = (p2 &gt;\u00a0<\/code><code>0<\/code>\u00a0<code>? ((<\/code><code>1<\/code>\u00a0<code>&lt;&lt; p1) - (<\/code><code>1<\/code>\u00a0<code>&lt;&lt; p2)).toString(<\/code><code>2<\/code><code>) : s)<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>+\u00a0<\/code><code>\"01\"<\/code>\u00a0<code>+ t.slice(p1 +\u00a0<\/code><code>2<\/code><code>);<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>return<\/code>\u00a0<code>r;<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>}<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u7b97\u6cd5\u601d\u8def\uff1a<\/p>\n<p>\u5047\u8bbe\u573a\u666f\u4e3a\u4ece [a, b, c, d, e] \u91cc\uff0c 5 \u9009 3.<\/p>\n<p>\u5148\u8bbe\u5b9a\u7b2c\u4e00\u4e2a\u548c\u6700\u540e\u4e00\u4e2a\u7ec4\u5408\u4e3a\uff1a<br \/>\ns = 1 1 1 0 0 \/\/ a,b,c<br \/>\ne = 0 0 1 1 1 \/\/ c,d,e<\/p>\n<p>Step1. \u4ece\u5de6\u5230\u53f3\u627e\u51fa\u7b2c i \u4e2a\u7ec4\u5408\u4e2d\u7684 10, \u8f6c\u6362\u4e3a 01, \u5e76\u5c06 01 \u5de6\u8fb9\u7684 1 \u5168\u90e8\u79fb\u52a8\u5230\u6700\u5de6\u8fb9\uff0c\u5f97\u5230\u65b0\u7ec4\u5408 t<br \/>\nStep2. \u5982\u679c t \u4e0d\u4e3a e\uff0c \u7ee7\u7eed Step1<\/p>\n<p>\u6309\u7167\u4ee5\u4e0a\u601d\u8def\uff0c\u53ef\u4ee5\u5f97\u5230\uff1a<\/p>\n<p>1 1 1 0 0<br \/>\n1 1 0 1 0<br \/>\n1 0 1 1 0<br \/>\n0 1 1 1 0<br \/>\n1 1 0 0 1<br \/>\n1 0 1 0 1<br \/>\n0 1 1 0 1<br \/>\n1 0 0 1 1<br \/>\n0 1 0 1 1<br \/>\n0 0 1 1 1<\/p>\n<p>\u5171 10 \u79cd\u7ec4\u5408<\/p>\n<p>\u7f51\u4e0a\u6d41\u4f20\u7684\u9012\u5f52\u65b9\u6848\uff08\u597d\u50cf\u662f\u6708\u5f71\u5199\u7684\uff1f\u6ca1\u627e\u5230\u6e90\u5934\uff09\uff1a<\/p>\n<div>\n<div>\n<div id=\"highlighter_562918\">\n<div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\/**<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0<\/code><code>* \u9012\u5f52\u7ec4\u5408\u7b97\u6cd5<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0<\/code><code>* \u4ece arr[1...n] \u4e2d\u4efb\u9009 num(0 &lt; num &lt;= n) \u4e2a\u6570\u7684\u6240\u6709\u7ec4\u5408<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0<\/code><code>*\/<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>function combine(arr, num) {<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>var r = [];<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>(function f(t, a, n) {<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>if<\/code>\u00a0<code>(n ==\u00a0<\/code><code>0<\/code><code>)\u00a0<\/code><code>return<\/code>\u00a0<code>r.push(t);<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>for<\/code>\u00a0<code>(var i =\u00a0<\/code><code>0<\/code><code>, l = a.length; i &lt;= l - n; i++) {<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>f(t.concat(a[i]), a.slice(i +\u00a0<\/code><code>1<\/code><code>), n -\u00a0<\/code><code>1<\/code><code>);<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>})([], arr, num);<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>return<\/code>\u00a0<code>r;<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<table>\n<tbody>\n<tr>\n<td><code>}<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u4e24\u79cd\u65b9\u6848\u7684\u6027\u80fd\u5bf9\u6bd4\uff1a\u00a0<a href=\"http:\/\/lifesinger.googlecode.com\/svn\/trunk\/lab\/2009\/combine-test.html\" rel=\"nofollow\">combine-test.html<sup><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.okooo.net\/images\/icons\/linkext7.gif\" alt=\"\" width=\"7\" height=\"7\" align=\"absmiddle\" border=\"0\" \/><\/sup><\/a><\/p>\n<p><del>\u5728 Firefox, Chrome, Safari \u6d4f\u89c8\u5668\u4e2d\uff0c\u5feb\u901f\u7ec4\u5408\u7b97\u6cd5\u4f18\u52bf\u975e\u5e38\u660e\u663e\u3002<\/del><br \/>\n<del>\u5728 IE \u6d4f\u89c8\u5668\u4e2d\uff0c\u8ba1\u7b97\u91cf\u6bd4\u8f83\u5c0f\u65f6\uff0c\u5feb\u901f\u7ec4\u5408\u7b97\u6cd5\u4f9d\u65e7\u6709\u4f18\u52bf\uff1b\u4f46\u8ba1\u7b97\u91cf\u5927\u65f6\uff0c\u65e0\u4f18\u52bf\uff0c\u751a\u81f3\u4e0d\u5982\u9012\u5f52\u3002<\/del><\/p>\n<p><ins>2009-09-27<\/ins>: \u4fee\u6539\u5feb\u901f\u7ec4\u5408\u7b97\u6cd5\uff0c\u7528 Math \u4ee3\u66ff regex replace, \u6027\u80fd\u7acb\u523b\u63d0\u5347\uff0c\u5728\u6240\u6709\u6d4f\u89c8\u5668\u4e0b\u4fdd\u6301\u4f18\u52bf\u3002<\/p>\n<p>51js \u8ba8\u8bba\u8d34\uff1a<a href=\"http:\/\/bbs.51js.com\/viewthread.php?tid=85574\" rel=\"nofollow\">http:\/\/bbs.51js.com\/viewthread.php?tid=85574<sup><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.okooo.net\/images\/icons\/linkext7.gif\" alt=\"\" width=\"7\" height=\"7\" align=\"absmiddle\" border=\"0\" \/><\/sup><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6765\u6e90\uff1a\u00a0http:\/\/lifesinger.org\/blog\/2009\/09\/javascript-quick-combine\/ Posted on September 25th, 2009 in\u00a0\u524d\u7aef\u5f00\u53d1\u00a0by lifesinger \/** \u00a0* \u5feb\u901f\u7ec4\u5408\u7b97\u6cd5 \u00a0* \u4ece n \u4e2d\u4efb\u9009 m(0 &lt; m &lt;= n) \u4e2a\u6570\u7684\u6240\u6709\u7ec4\u5408 \u00a0*\/ function quick_combine(n, m) { \u00a0\u00a0\u00a0\u00a0var t = ((1\u00a0&lt;&lt; n) &#8211; (1\u00a0&lt;&lt; n &#8211; m)).toString(2), \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0r = [], s, p1, p2; \u00a0\u00a0\u00a0\u00a0while((r.push(t), p1 = t.indexOf(&#8220;10&#8221;)) &gt;=\u00a00) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0s\u00a0 = t.slice(0, p1); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0p2 = s.indexOf(&#8220;1&#8221;);&#8230; <\/p>\n<div class=\"read-more\"><a href=\"https:\/\/xlight.me\/blog\/2016\/09\/%e5%bf%ab%e9%80%9f%e8%ae%a1%e7%ae%97%e4%bb%8en%e4%b8%ad%e4%bb%bb%e9%80%89m%e7%9a%84%e6%89%80%e6%9c%89%e7%bb%84%e5%90%88\/\">Read More<\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[48],"tags":[],"class_list":["post-113","post","type-post","status-publish","format-standard","hentry","category-48"],"_links":{"self":[{"href":"https:\/\/xlight.me\/blog\/wp-json\/wp\/v2\/posts\/113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xlight.me\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xlight.me\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xlight.me\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xlight.me\/blog\/wp-json\/wp\/v2\/comments?post=113"}],"version-history":[{"count":2,"href":"https:\/\/xlight.me\/blog\/wp-json\/wp\/v2\/posts\/113\/revisions"}],"predecessor-version":[{"id":196,"href":"https:\/\/xlight.me\/blog\/wp-json\/wp\/v2\/posts\/113\/revisions\/196"}],"wp:attachment":[{"href":"https:\/\/xlight.me\/blog\/wp-json\/wp\/v2\/media?parent=113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xlight.me\/blog\/wp-json\/wp\/v2\/categories?post=113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xlight.me\/blog\/wp-json\/wp\/v2\/tags?post=113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}