from pylab import *
Example for 5 values per decade. This is called the R5 or Renard series (not used much in ECE-related ares). See Wikipedia: Renard series for more background.
# R5 series. NOTE: the R5 values are rounded differently
t = array([10**(i/5.0) for i in range(6)])
for i in t: print('%4.2f' % i)
#round to 2 digits
te = around(10.0 * t) / 10.0 # "array round" from numpy library
#
for i in te: print('%2.1f' % i)
semilogy(te, 'o-', label='estimate')
semilogy(t, '-', label='actual')
legend(loc='lower right'); grid(True)
The E12 series is a common set of values for resistors and capacitors.
Note that some numbers are rounded slightly differently than pure log-spacing.
# log-spaced numbers, 12 per decade
t = array([10**(i/12.0) for i in range(13)])
t = around(10.0 * t) / 10.0 #round to 1 decimal
# official E12 series
e12 = [1.0, 1.2, 1.5, 1.8, 2.2, 2.7, 3.3, 3.9, 4.7, 5.6, 6.8, 8.2, 10.0]
# round each to 2 digits and print
print('log E12')
print('----|------')
for i, j in zip(t, e12):
if i == j:
flag = ''
else:
flag = ' ***'
print('%4.1f %4.1f %s' % (i, j, flag))
Devices with 5% tolerance are typically sold using the E24 series of values, since the spacing is about 10% between values. This allows each value's tolerance to be $\pm 5\%$ without having overlapping nominal values.
1% values are sold using the E96 series.
This web page very nicely illustrates the relationship between the E6, E12, E24, E48, E96, and E192 series.
The E12 series is probably the most useful series to memorize for an ECE.