Блог пользователя 0442A403

Автор 0442A403, 5 лет назад, По-английски

You have an array $$$arr$$$ with $$$n$$$ elements. Let number $$$i$$$ occurs in multiset $$$Q$$$ $$$arr_i$$$ times. How to get random number from multiset $$$Q$$$ faster than $$$O($$$$$$\log n$$$$$$)$$$?

$$$n$$$ <= $$$1e5$$$, $$$arr_i$$$ <= $$$1e9$$$

  • Проголосовать: нравится
  • +50
  • Проголосовать: не нравится

»
5 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Is this even solvable?

  • »
    »
    5 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    I think that this one is $$$O(logn)$$$:

    Generate random number from $$$1$$$ to sum of elements of array $$$arr$$$. The answer will be minimum $$$i$$$ such that sum of elements of array $$$arr$$$ from $$$1$$$ to $$$i$$$ is greater than equal to this random number using binary search.

»
5 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

You need to clarify this. Why can't I for O(1) take first item from Q? What "get random numner" there means? What multiset is for in this task?

»
5 лет назад, # |
  Проголосовать: нравится +29 Проголосовать: не нравится
»
5 лет назад, # |
  Проголосовать: нравится +14 Проголосовать: не нравится

Sometimes I wonder what are the trends that determine whether a post would get straight up downvoted or not.