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
-
2172 Solvers
-
95 Solvers
-
173 Solvers
-
323 Solvers
-
363 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!