Problem 808. Hamming Weight - Fast
Solution Stats
Solution Comments
-
1 Comment
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
-
2011 Solvers
-
1853 Solvers
-
The Hitchhiker's Guide to MATLAB
3156 Solvers
-
153 Solvers
-
We love vectorized solutions. Problem 1 : remove the row average.
761 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!