Algartam Cuardach Randamach (Random Search) i Java: Réamhrá, Conas a Oibríonn sé, Sampla

Is modh cuardaigh é an t-algartam Cuardaigh Randamach, ar a dtugtar cuardach Monte Carlo freisin, bunaithe ar randamacht. In ionad gach eilimint a sheiceáil go seicheamhach in eagar sonraí, roghnaíonn an algartam seo go randamach roinnt gnéithe le scrúdú. Sábhálann an cur chuige seo am agus acmhainní i gcomparáid le cuardach seicheamhach.

Conas a oibríonn sé

  1. Céim 1: Tosaigh leis an eagar sonraí is mian leat a chuardach.

  2. Céim 2: Roghnaigh go randamach líon áirithe eilimintí le scrúdú.

  3. Céim 3: Seiceáil na heilimintí roghnaithe le feiceáil an bhfuil siad ag teacht leis an gcoinníoll cuardaigh.

  4. Céim 4: Má aimsítear eilimint mheaitseála, cuir an toradh ar ais; mura bhfuil, fill ar Chéim 2.

  5. Céim 5: Lean ar aghaidh leis an bpróiseas go dtí go bhfaighfear meaitseáil nó go sroichfear an líon uasta iarrachtaí.

Buntáistí agus míbhuntáistí

Buntáistí:

  • Tíosach ar Acmhainní: Sábhálann sé am agus cuimhne, go háirithe i gcás eagair mhóra sonraí.
  • Randamach: Ní furasta a thuar, oiriúnach do chásanna ina dteastaíonn randamacht.

Míbhuntáistí:

  • Gan Ráthaíocht Ratha: Níl aon ráthaíocht ann go bhfaighidh an algartam an toradh inmhianaithe.
  • B'fhéidir go dtógfaidh sé Am Fada: Sa chás is measa, féadfaidh an t-algartam níos faide a ghlacadh ná cuardach seicheamhach.

Sampla agus Míniú

Smaoinigh ar an sampla seo a leanas den Algartam Cuardaigh Randamach a úsáid chun slánuimhir a aimsiú in eagar:

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.");  
        }  
    }  
}  

Sa sampla seo, úsáidimid Algartam Cuardaigh Randamach chun slánuimhir a aimsiú in eagar. Déanaimid atriall tríd an eagar, roghnaimid innéacs go randamach, agus seiceáil an bhfuil an eilimint ag an innéacs sin ag teacht leis an spriocuimhir. Má aimsítear é, cuirimid an t-innéacs ar ais; mura bhfuil, leanaimid ar aghaidh go dtí go sroichtear an líon uasta iarrachtaí.