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

Автор Confused101, история, 8 лет назад, По-английски

Given N rectangles which may or may not intersect. Report a random point Inside any rectangle. (probability of every point chosen must be equal). How to solve this problem?

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

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

Points that appear in more that one rectangle have more probability or not?

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

    No, every point should have same probability of being chosen irrespective of numbers of rectangles it appears in.

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

      One more question :)...

      Could a rectangle have two or more of these N points in it?

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

        There are N rectangles, you have to report random points inside any of these rectangles. Sorry if I was unclear, See image you need to report any random point from blue region. Image

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

Partition the rectangle union into area-disjoint rectangles, choose a rectangle randomly accordingly to ratio of its area to sum of areas. Choose random (x,y) coordinate inside.

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

    Looks good to me. Can you tell how can I "Partition the rectangle union into area-disjoint rectangles"? (algorithm)

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

If coordinates are not big, you can get any random point until you get one which is inside one of the rectangles. That will still give you a uniform distribution although at a time complexity cost.