मुझे अजगर में एक पूर्णांक में बिट्स की संख्या की गणना करने के लिए एक तेज़ तरीका चाहिए। मेरा वर्तमान समाधान है
bin(n).count("1")
लेकिन मुझे आश्चर्य है कि क्या ऐसा करने का कोई तेज़ तरीका है?
पुनश्च: (मैं संख्याओं की एक सूची के रूप में एक बड़ा 2 डी बाइनरी सरणी का प्रतिनिधित्व कर रहा हूं और बिटवाइज़ संचालन कर रहा हूं, और यह समय को घंटों से मिनटों तक नीचे लाता है। अब मैं उन अतिरिक्त मिनटों से छुटकारा पाना चाहूंगा।
संपादित करें: 1. यह अजगर 2.7 या 2.6 में होना चाहिए
और छोटी संख्या के लिए अनुकूलन करना बहुत मायने नहीं रखता है क्योंकि यह एक स्पष्ट अड़चन नहीं होगी, लेकिन मेरे पास कुछ स्थानों पर 10 000 + बिट्स के साथ संख्याएं हैं
उदाहरण के लिए यह 2000 का बिट केस है:
12448057941136394342297748548545082997815840357634948550739612798732309975923280685245876950055614362283769710705811182976142803324242407017104841062064840113262840137625582646683068904149296501029754654149991842951570880471230098259905004533869130509989042199261339990315125973721454059973605358766253998615919997174542922163484086066438120268185904663422979603026066685824578356173882166747093246377302371176167843247359636030248569148734824287739046916641832890744168385253915508446422276378715722482359321205673933317512861336054835392844676749610712462818600179225635467147870208L
int
? क्या इसकी गणना के लिए अपनी स्वयं की विधि नहीं है?
int.bit_length
उत्तर होना चाहिए, और नीचे स्वीकार नहीं किया जाना चाहिए।