Aantal binaire toevalligheden op fix lengte binaire getallen op python

stemmen
0

Dus wat ik nodig heb is een python functie om de binaire die samenvallen op twee nummers geschreven in binaire, maar met een vaste, bekende lengte tellen. Als bijvoorbeeld n = 8de binaire lengte, dan:

a = 0011 0110
b = 0101 1111
--------------
c = 1001 0110 -> 4

Moet krijgen een gevolg van 4. elk 0op c niet samenvallen en elk 1middelen toeval. Als c is een 4, dan is het resultaat 4.

Ik heb het nodig om zo snel mogelijk .

De vraag is gesteld op 20/10/2018 om 13:51
bron van user
In andere talen...                            


1 antwoorden

stemmen
1

Dit was mijn definitieve oplossing dat ik denk dat is zeer effectief:

bin(a ^ b)[2:].zfill(n).count("0")

Toelichting De logica was XOR te gebruiken om het aantal toevalligheden te krijgen. Met XOR, eigenlijk krijg ik het omgekeerde van het gedaan in de kwestie bijvoorbeeld als een toeval betekent een 0en een niet toevallig zal betekenen 1. Dus ik zal hebben om het te ontkennen, maar daarvoor moet ik het aantal te maken nomvang, omdat het antwoord is eigenlijk 110 1001en dus ik zal een respons van 3 in plaats van 4 te krijgen.

antwoordde op 20/10/2018 om 13:51
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more