পাইথনের একটি পূর্ণসংখ্যার বিটের সংখ্যা গণনা করার জন্য আমার দ্রুত উপায় প্রয়োজন। আমার বর্তমান সমাধান
bin(n).count("1")
তবে আমি ভাবছি যে এটি করার কোনও দ্রুত উপায় আছে কিনা?
পিএস: (আমি সংখ্যার একক তালিকা হিসাবে একটি বড় 2 ডি বাইনারি অ্যারে উপস্থাপন করছি এবং বিটওয়াইস ক্রিয়াকলাপ করছি এবং এটি সময়কে কয়েক ঘন্টা থেকে কয়েক মিনিটে নামিয়ে আনবে। এবং এখন আমি এই অতিরিক্ত মিনিট থেকে মুক্তি পেতে চাই like
সম্পাদনা: 1. এটি অজগর 2.7 বা 2.6 এ থাকতে হবে
এবং স্বল্প সংখ্যার জন্য অনুকূল হওয়া এতোটা গুরুত্বপূর্ণ নয় যেহেতু এটি স্পষ্ট বাধা নয়, তবে আমার কাছে কয়েকটি জায়গায় 10 000 + বিট সহ সংখ্যা রয়েছে
উদাহরণস্বরূপ এটি 2000 বিট কেস:
12448057941136394342297748548545082997815840357634948550739612798732309975923280685245876950055614362283769710705811182976142803324242407017104841062064840113262840137625582646683068904149296501029754654149991842951570880471230098259905004533869130509989042199261339990315125973721454059973605358766253998615919997174542922163484086066438120268185904663422979603026066685824578356173882166747093246377302371176167843247359636030248569148734824287739046916641832890744168385253915508446422276378715722482359321205673933317512861336054835392844676749610712462818600179225635467147870208L
int
? এটি গণনা করার জন্য এর নিজস্ব পদ্ধতি নেই?
int.bit_length
উত্তরটি হওয়া উচিত, এবং নীচে গৃহীত এক নয়।