# 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.