code: def computeUniquePointsSensed(nCols, nPoints, s):
    
    if nCols == 1:
      return min(s, nPoints)
    elif nCols < nPoints:
      q = float(nCols) / nPoints
      unique = min(int(round(( 1.0 - math.pow(1.0 - q, s)) * nPoints)),
                   nPoints)
      return unique
    else:
      return nPoints
docs: If a network with nCols columns senses an object s times, how many
    unique points are actually sensed?  The number is generally <= nCols * s
    because features may be repeated across sensations.