Mean bits: an average challenge
Pyth, 6 bytes
.Oml.B
Try it online here.
.Oml.BdUQ Filling in implict vars
.O Average of list
m UQ Map over [0..input)
l Length of
.B Binary string representation of int
d Lambda var
Jelly, 6 bytes
R’BFL÷
Try it online!
R’BFL÷ Main monadic chain. Argument: n
R yield [1, 2, ..., n]
’ decrement; yield [0, 1, ..., n-1]
B convert to binary; yield [[0], [1], [1,0], [1,1], ...]
F flatten list; yield [0, 1, 1, 0, 1, 1, ...]
L length of list
÷ divide [by n]
Octave, 29 bytes
@(n)1+sum(fix(log2(1:n-1)))/n
Explanation
log2(1:n-1) % log2 of numbers in range [1..n-1]
% why no 0? because log2(0) = -Inf :/
fix( ) % floor (more or less, for positive numbers)
sum( ) % sum... wait, didn't we miss a +1 somewhere?
% and what about that missing 0?
/n % divide by n for the mean
1+ % and add (1/n) for each of the n bit lengths
% (including 0!)
Sample run on ideone.