यादृच्छिक शोध (Random Search) अल्गोरिदम Java: परिचय, ते कसे कार्य करते, उदाहरण

यादृच्छिक शोध अल्गोरिदम, मॉन्टे कार्लो शोध म्हणूनही ओळखले जाते, ही यादृच्छिकतेवर आधारित शोध पद्धत आहे. डेटा अॅरेमधील प्रत्येक घटक क्रमवार तपासण्याऐवजी, हे अल्गोरिदम यादृच्छिकपणे तपासण्यासाठी अनेक घटक निवडते. अनुक्रमिक शोधाच्या तुलनेत हा दृष्टिकोन वेळ आणि संसाधने वाचवतो.

हे कसे कार्य करते

  1. पायरी 1: तुम्ही शोधू इच्छित असलेल्या डेटा अॅरेसह प्रारंभ करा.

  2. पायरी 2: यादृच्छिकपणे तपासण्यासाठी घटकांची विशिष्ट संख्या निवडा.

  3. पायरी 3: निवडलेले घटक शोध स्थितीशी जुळतात का ते तपासा.

  4. पायरी 4: जुळणारा घटक आढळल्यास, परिणाम परत करा; नसल्यास, चरण 2 वर परत या.

  5. पायरी 5: जुळणी सापडेपर्यंत किंवा प्रयत्नांची कमाल संख्या गाठेपर्यंत प्रक्रिया सुरू ठेवा.

फायदे आणि तोटे

फायदे:

  • संसाधन-कार्यक्षम: वेळ आणि मेमरी वाचवते, विशेषत: मोठ्या डेटा अॅरेसाठी.
  • यादृच्छिकता: सहज अंदाज लावता येत नाही, यादृच्छिकता आवश्यक असलेल्या परिस्थितींसाठी योग्य.

तोटे:

  • यशाची कोणतीही हमी नाही: अल्गोरिदम इच्छित परिणाम शोधेल याची कोणतीही खात्री नाही.
  • बराच वेळ लागू शकतो: सर्वात वाईट परिस्थितीत, अल्गोरिदमला अनुक्रमिक शोधापेक्षा जास्त वेळ लागू शकतो.

उदाहरण आणि स्पष्टीकरण

अॅरेमध्ये पूर्णांक शोधण्यासाठी यादृच्छिक शोध अल्गोरिदम वापरण्याचे खालील उदाहरण विचारात घ्या:

import java.util.Random;  
  
public class RandomSearchExample {  
    static int randomSearch(int[] arr, int target) {  
        Random rand = new Random();  
        int maxAttempts = arr.length; // Maximum number of attempts  
        for(int i = 0; i < maxAttempts; i++) {  
            int randomIndex = rand.nextInt(arr.length); // Randomly select an index  
            if(arr[randomIndex] == target) {  
                return randomIndex; // Return the index if found  
            }  
        }  
        return -1; // Return -1 if not found  
    }  
  
    public static void main(String[] args) {  
        int[] numbers = {1, 5, 9, 3, 7};  
        int target = 3;  
        int result = randomSearch(numbers, target);  
        if(result != -1) {  
            System.out.println("Number " + target + " found at index " + result);  
        } else {  
            System.out.println("Number " + target + " not found in the array.");  
        }  
    }  
}  

या उदाहरणात, अॅरेमध्ये पूर्णांक शोधण्यासाठी आम्ही यादृच्छिक शोध अल्गोरिदम वापरतो. आम्ही अॅरेद्वारे पुनरावृत्ती करतो, यादृच्छिकपणे एक अनुक्रमणिका निवडतो आणि त्या निर्देशांकातील घटक लक्ष्य क्रमांकाशी जुळतो का ते तपासतो. आढळल्यास, आम्ही निर्देशांक परत करतो; नसल्यास, आम्ही प्रयत्नांची कमाल संख्या गाठेपर्यंत सुरू ठेवतो.