code: def binary_n(total_N, min_n=50):
    
    max_exp = np.log2(1.0 * total_N / min_n)
    max_exp = int(np.floor(max_exp))
    return [int(np.floor(1.0 * total_N / (2**i))) for i in range(1, max_exp + 1)]
docs: Creates a list of values by successively halving the total length total_N
    until the resulting value is less than min_n.
  
    Non-integer results are rounded down.
  
    Args:
      total_N (int):
        total length
    Kwargs:
      min_n (int):
        minimal length after division
  
    Returns:
      list of integers:
        total_N/2, total_N/4, total_N/8, ... until total_N/2^i < min_n