code: def hagenbach_bishoff(
      vector_size: int, scores: Sequence[float]
  ) -> Sequence[int]:
      """
      Split a vector between participants based on continuous fractions.
      https://en.wikipedia.org/wiki/Hagenbach-Bischoff_system
      The code is based on https://github.com/crflynn/voting
  
      :param vector_size: the total number of elements to be split
      :param scores: real-valued vector fractions for each peer
      :returns: integer-valued partitions assigned to every peer
      """
      total_score = sum(scores)
      allocated = [
          int(vector_size * score_i / total_score) for score_i in scores
      ]
      while sum(allocated) < vector_size:
          quotients = [
              score / (allocated[idx] + 1)
              for idx, score in enumerate(scores)
          ]
          idx_max = quotients.index(max(quotients))
          allocated[idx_max] += 1
      return allocated
  
imports: from typing import Optional, Sequence, Tuple
  import numpy
  import scipy.optimize
  from hivemind.utils.logging import get_logger
label_desc: Use image node_id 3 for calling a global function with example usage: hagenbach_bishoff(vector_size, scores) and returns: allocated