Problem 808. Hamming Weight - Fast
Solution Stats
Solution Comments
-
1 Comment
Shlomo Geva
on 29 Oct 2017
1. This solution is much faster on re-invocation than the one without the persistent num_ones variable. Unless of course it is performed on a much larger (than num_ones) array of 32-bit integer.
2. It is essential to have the statement
x= double(x);
The reason for this is that the floor() function has a problem with precision. If can fail with 32-bit integer that are close to 2^32.
For instance, consider this Matlab code and system response:
>> p=uint32(4294946031)
p =
uint32
4294946031
>> floor(p/65536)
ans =
uint32
65536
Problem Recent Solvers10
Suggested Problems
-
3237 Solvers
-
1352 Solvers
-
449 Solvers
-
194 Solvers
-
Is this group simply connected?
26 Solvers
More from this Author260
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!