Skip to content
Programmingoneonone
Programmingoneonone
  • Home
  • CS Subjects
    • Internet of Things (IoT)
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
Programmingoneonone

Leetcode Generate Random Point in a Circle problem solution

YASH PAL, 31 July 2024

In this Leetcode Generate Random Point in a Circle problem solution Given the radius and the position of the center of a circle, implement the function randPoint which generates a uniform random point inside the circle.

Implement the Solution class:

Solution(double radius, double x_center, double y_center) initializes the object with the radius of the circle radius and the position of the center (x_center, y_center).

randPoint() returns a random point inside the circle. A point on the circumference of the circle is considered to be in the circle. The answer is returned as an array [x, y].

Leetcode Generate Random Point in a Circle problem solution

Problem solution in Python.

class Solution(object):

    def __init__(self, radius, x_center, y_center):
        """
        :type radius: float
        :type x_center: float
        :type y_center: float
        """
        self.radius = radius
        self.x_center = x_center
        self.y_center = y_center
        

    def randPoint(self):
        """
        :rtype: List[float]
        """
        theta = 2*math.pi*random.random()
        r = self.radius * math.sqrt(random.random())
        x = self.x_center + r * math.cos(theta)
        y = self.y_center + r * math.sin(theta)
        return [x, y]

Problem solution in Java.

public class Solution {
    double radius;
    double xCentre;
    double yCentre;

    public Solution(double radius, double x_center, double y_center) {
        this.radius = radius;
        this.xCentre = x_center;
        this.yCentre = y_center;
    }

    public double[] randPoint() {
        double randomRadius = Math.sqrt(Math.random()) * radius;
        double angle = Math.random() * 2 * Math.PI;
        double x = xCentre + randomRadius * Math.cos(angle);
        double y = yCentre + randomRadius * Math.sin(angle);
        return new double[]{x, y};
    }
}

Problem solution in C++.

class Solution {
public:
    double r;
    double x;
    double y;
    Solution(double radius, double x_center, double y_center) {
        r = radius;
        x = x_center;
        y = y_center;
    }
    
    vector<double> randPoint() {
        double x_, y_;
        
        do{
            double rand_double_x = (double)rand() / RAND_MAX; // Gets random double between [0,1]
            double rand_double_y = (double)rand() / RAND_MAX;
            x_ = (2*(rand_double_x) - 1.0) * r;   //To get [-1, 1]
            y_ = (2*(rand_double_y) - 1.0) * r;   //To get [-1, 1]
        } while(x_*x_ + y_*y_ > r*r);
        
        return {x+x_, y+y_};
    }
};

coding problems solutions

Post navigation

Previous post
Next post

Pages

  • About US
  • Contact US
  • Privacy Policy

Programing Practice

  • C Programs
  • java Programs

HackerRank Solutions

  • C
  • C++
  • Java
  • Python
  • Algorithm

Other

  • Leetcode Solutions
  • Interview Preparation

Programming Tutorials

  • DSA
  • C

CS Subjects

  • Digital Communication
  • Human Values
  • Internet Of Things
  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2025 Programmingoneonone | WordPress Theme by SuperbThemes