Fisher–Yates shuffle
ஃபிஷர்-யேட்ஸ் ஷஃபிள் என்பது ஒரு வரையறுக்கப்பட்ட வரிசையை மாற்றுவதற்கான ஒரு வழிமுறையாகும். அல்காரிதம் வரிசையின் அனைத்து கூறுகளின் பட்டியலையும் எடுத்து, எந்த உறுப்புகளும் எஞ்சியிருக்கும் வரை பட்டியலில் இருந்து ஒரு உறுப்பை தோராயமாக வரைவதன் மூலம் கலக்கப்பட்ட வரிசையில் அடுத்த உறுப்பை தொடர்ந்து தீர்மானிக்கிறது. இந்த வழிமுறை ஒரு பக்கச்சார்பற்ற வரிசைமாற்றத்தை உருவாக்குகிறதுஃ ஒவ்வொரு வரிசைமாற்றமும் சமமாக சாத்தியமாகும். வழிமுறையின் நவீன பதிப்பு மாற்றியமைக்கப்படும் பொருட்களின் எண்ணிக்கைக்கு விகிதாசாரமாக நேரத்தை எடுத்துக்கொள்கிறது மற்றும் அவற்றை இடத்தில் மாற்றுகிறது. ஃபிஷர்-யேட்ஸ் ஷஃபிள் முதலில் அதை விவரித்த ரொனால்ட் ஃபிஷர் மற்றும் ஃபிராங்க் யேட்ஸ் ஆகியோரின் பெயரால் அழைக்கப்படுகிறது, மேலும் இது டொனால்ட் க்னுத்தின் நினைவாக க்னுத் ஷஃபிள் என்றும் அழைக்கப்படுகிறது. ஃபிஷர்-யேட்ஸ் ஷஃபிளின் ஒரு மாறுபாடு, சாடோலோவின் வழிமுறை என்று அழைக்கப்படுகிறது, இது சீரற்ற வரிசைமாற்றங்களுக்கு பதிலாக n நீளத்தின் சீரற்ற சுழற்சி வரிசைமாற்றங்களை உருவாக்க பயன்படுத்தப்படலாம். ஃபிஷர் மற்றும் யேட்ஸின் அசல் முறை ஃபிஷர்-யேட்ஸ் ஷஃபிள், அதன் அசல் வடிவத்தில், 1938 ஆம் ஆண்டில் ரொனால்ட் ஃபிஷர் மற்றும் ஃபிராங்க் யேட்ஸ் ஆகியோர் உயிரியல், விவசாய மற்றும் மருத்துவ ஆராய்ச்சிக்கான புள்ளிவிவர அட்டவணைகள் என்ற புத்தகத்தில் விவரித்தனர். வழிமுறை பற்றிய அவர்களின் விளக்கம் பென்சில் மற்றும் காகிதத்தைப் பயன்படுத்தியது; சீரற்ற எண்களின் அட்டவணை சீரற்ற தன்மையை வழங்கியது. 1 முதல் N வரையிலான எண்களின் சீரற்ற வரிசைமாற்றத்தை உருவாக்குவதற்கு கொடுக்கப்பட்ட அடிப்படை முறை பின்வருமாறு செல்கிறதுஃ 1 முதல் N வரையிலான எண்களை எழுதுங்கள். ஒன்றுக்கும் மீதமுள்ள (உட்பட) தடையற்ற எண்களின் எண்ணிக்கைக்கும் இடையில் ஒரு சீரற்ற எண்ணை k ஐத் தேர்ந்தெடுக்கவும். குறைந்த முனையிலிருந்து எண்ணும் போது, இன்னும் வெளியிடப்படாத kth எண்ணை அழித்து, அதை ஒரு தனி பட்டியலின் முடிவில் எழுதுங்கள். அனைத்து எண்களும் வெளியேறும் வரை படி 2 இலிருந்து மீண்டும் செய்யவும். படி 3 இல் எழுதப்பட்ட எண்களின் வரிசை இப்போது அசல் எண்களின் சீரற்ற வரிசைமாற்றமாகும். மேலே உள்ள படி 2 இல் தேர்ந்தெடுக்கப்பட்ட சீரற்ற எண்கள் உண்மையிலேயே சீரற்றவை மற்றும் பக்கச்சார்பற்றவை, எனவே இதன் விளைவாக வரிசைமாற்றமாக இருக்கும். வழங்கப்பட்ட அட்டவணைகளிலிருந்து எந்தவொரு விரும்பத்தக்க வரம்பிலும் அத்தகைய சீரற்ற எண்களை எவ்வாறு பெறுவது என்பதை விவரிக்க ஃபிஷர் மற்றும் யேட்ஸ் கவனமாக இருந்தனர். ஒரு எளிய முறையைப் பயன்படுத்துவதற்கான சாத்தியத்தையும் அவர்கள் பரிந்துரைத்தனர்-ஒன்றிலிருந்து N க்கு சீரற்ற எண்களைத் தேர்ந்தெடுப்பது மற்றும் எந்தவொரு நகல்களையும் நிராகரிப்பது-வரிசைமாற்றத்தின் முதல் பாதியை உருவாக்குவதற்கும், மீதமுள்ள பாதியில் மிகவும் சிக்கலான வழிமுறையை மட்டுமே பயன்படுத்துவதற்கும், ஒரு நகல் எண்ணைத் தேர்ந்தெடுப்பது வெறுப்பாக இருக்கும். நவீன வழிமுறை கணினி பயன்பாட்டிற்காக வடிவமைக்கப்பட்ட ஃபிஷர்-யேட்ஸ் ஷஃபிளின் நவீன பதிப்பு, ரிச்சர்ட் டர்ஸ்டன்ஃபீல்டால் 1964 இல் அறிமுகப்படுத்தப்பட்டது மற்றும் டொனால்ட் ஈ. க்னுத்தால் தி ஆர்ட் ஆஃப் கம்ப்யூட்டர் புரோகிராமிங்கில் "அல்காரிதம் பி (ஷஃபிளிங்)" என்று பிரபலப்படுத்தப்பட்டது. டர்ஸ்டன்ஃபீல்டின் கட்டுரையோ அல்லது தி ஆர்ட் ஆஃப் கம்ப்யூட்டர் புரோகிராமிங்கின் க்னுத்தின் முதல் பதிப்போ ஃபிஷர் மற்றும் யேட்ஸின் பணியை அங்கீகரிக்கவில்லை; அவர்கள் அதை அறிந்திருக்க மாட்டார்கள். க்னுத்தின் தி ஆர்ட் ஆஃப் கம்ப்யூட்டர் புரோகிராமிங்கின் அடுத்தடுத்த பதிப்புகள் ஃபிஷர் மற்றும் யேட்ஸின் பங்களிப்பைக் குறிப்பிடுகின்றன. டர்ஸ்டன்ஃபீல்டால் விவரிக்கப்பட்ட வழிமுறை ஃபிஷர் மற்றும் யேட்ஸ் வழங்கியதை விட மிகவும் திறமையானதுஃ அதேசமயம் ஃபிஷர் மற்றும் யேட்ஸ் முறையின் ஒரு அப்பாவியான கணினி செயல்படுத்தல் மேலே உள்ள படி 3 இல் மீதமுள்ள எண்களை எண்ணுவதற்கு தேவையற்ற நேரத்தை செலவிடும், டர்ஸ்டன்ஃபீல்டின் தீர்வு ஒவ்வொரு மறு செய்கையிலும் கடைசி தடையற்ற எண்ணுடன் அவற்றை மாற்றுவதன் மூலம் பட்டியலின் முடிவுக்கு "தாக்கப்பட்ட" எண்களை நகர்த்துவதாகும். இது அப்பாவித்தனமான செயல்பாட்டுடன் ஒப்பிடும்போது வழிமுறையின் நேர சிக்கலைக் குறைக்கிறது. இந்த மாற்றம் பின்வரும் வழிமுறையை வழங்குகிறது (பூஜ்ஜிய அடிப்படையிலான வரிசைக்கு). --n உறுப்புகளின் வரிசை a ஐ கலக்க (குறியீடுகள் 0.n-1): i க்கு n−1 முதல் 1 வரை random முழு எண்ணை செய்யுங்கள், அதாவது 0 ≤ j ≤ i ஒரு [j] மற்றும் ஒரு [i] ஐ பரிமாறிக்கொள்ளும் ஒரு சமமான பதிப்பு எதிர் திசையில் வரிசையை கலக்கும் (குறைந்த குறியீட்டிலிருந்து அதிகபட்சம் வரை):-- n உறுப்புகளின் வரிசை a ஐ கலக்க (குறியீடுகள் 0.n-1): i க்கு 0 முதல் n−2 வரை random முழு எண்ணை செய்ய i ≤ j <n ஒரு [i] மற்றும் ஒரு [j] எடுத்துக்காட்டுகள் பென்சில் மற்றும் காகித முறை இந்த எடுத்துக்காட்டு ஃபிஷர் மற்றும் யேட்ஸின் அசல் முறையைப் பயன்படுத்தி A முதல் H வரையிலான எழுத்துக்களை வரிசைப்படுத்துகிறது. எடுத்துக்காட்டாக, ஜே = 3 என்றால், ஒருவர் மூன்றாவது எழுத்தை கீறல் திண்டு மீது அடித்து, அதன் விளைவாக எழுதுகிறார்ஃ இரண்டாவது சீரற்ற எண் தேர்ந்தெடுக்கப்படுகிறது, இந்த முறை 1 முதல் 7 வரை. எண் 4 ஆக இருந்தால், ஸ்க்ராட்ச் பேடில் இருந்து இன்னும் அடிக்கப்படாத நான்காவது எழுத்தை ஒருவர் அடித்து, அதை முடிவுடன் சேர்க்கிறார்ஃ அடுத்த சீரற்ற எண் 1 முதல் 6 வரை தேர்ந்தெடுக்கப்படுகிறது, பின்னர் 1 முதல் 5 வரை, மற்றும் பல, எப்போதும் ஸ்ட்ரைக்-அவுட் செயல்முறையை மேலே உள்ளபடி மீண்டும் செய்யவும்ஃ நவீன முறை டர்ஸ்டன்ஃபீல்டின் வழிமுறையின் பதிப்பில், தேர்ந்தெடுக்கப்பட்ட எழுத்துக்களை அடித்து அவற்றை வேறு இடத்தில் நகலெடுப்பதற்குப் பதிலாக, அவை இன்னும் தேர்ந்தெடுக்கப்படாத கடைசி எழுத்துடன் மாற்றப்படுகின்றன. முன்பு போலவே A முதல் H வரையிலான எழுத்துக்களுடன் தொடங்குங்கள்ஃ 1 முதல் 8 வரையிலான ஒரு சீரற்ற எண்ணை j ஐத் தேர்ந்தெடுத்து, பின்னர் jth மற்றும் 8 வது எழுத்துக்களை மாற்றவும். எனவே, சீரற்ற எண் 6 ஆக இருந்தால், எடுத்துக்காட்டாக, பட்டியலில் உள்ள 6 வது மற்றும் 8 வது எழுத்துக்களை மாற்றவும்ஃ அடுத்த சீரற்ற எண் 1 முதல் 7 வரை தேர்ந்தெடுக்கப்படுகிறது, மேலும் தேர்ந்தெடுக்கப்பட்ட எழுத்து 7 வது எழுத்துடன் மாற்றப்படுகிறது. இது 2 ஆக இருந்தால், எடுத்துக்காட்டாக, 2 வது மற்றும் 7 வது எழுத்துக்களை மாற்றவும்ஃ வரிசைமாற்றத்தை முடிக்கும் வரை செயல்முறை மீண்டும் மீண்டும் செய்யப்படுகிறதுஃ எட்டு படிகளுக்குப் பிறகு, வழிமுறை முடிந்துவிட்டது, இதன் விளைவாக வரிசைமாற்றமானது G E D C A H B F ஆகும். மாறுபாடுகள் "இன்சைட்-அவுட்" வழிமுறை டர்ஸ்டன்ஃபீல்டால் செயல்படுத்தப்பட்ட ஃபிஷர்-யேட்ஸ் ஷஃபிள், ஒரு இடத்தில் ஷஃபிள் ஆகும். அதாவது, ஒரு ஆரம்ப வரிசை கொடுக்கப்பட்டால், அது வரிசையின் கலக்கப்பட்ட நகலை தயாரிப்பதை விட, வரிசையின் கூறுகளை மாற்றியமைக்கிறது. மாற்றியமைக்கப்பட வேண்டிய வரிசை பெரியதாக இருந்தால் இது ஒரு நன்மையாக இருக்கலாம். ஒரே நேரத்தில் ஒரு வரிசையை துவக்கவும் மற்றும் கலக்கவும், கலப்பின் "இன்சைட்-அவுட்" பதிப்பைச் செய்வதன் மூலம் இன்னும் கொஞ்சம் அதிக செயல்திறனை அடைய முடியும். இந்த பதிப்பில், ஒருவர் தொடர்ச்சியாக உறுப்பு எண் i ஐ வரிசையில் முதல் i நிலைகளில் ஒரு சீரற்ற நிலையில் வைக்கிறார், முன்பு அந்த நிலையை ஆக்கிரமித்திருந்த உறுப்பை i நிலைக்கு நகர்த்திய பிறகு. சீரற்ற நிலை எண் i ஆக இருந்தால், இந்த "நகர்வு" (அதே இடத்திற்கு) ஒரு துவக்கப்படாத மதிப்பை உள்ளடக்கியது, ஆனால் அது ஒரு பொருட்டல்ல, ஏனெனில் மதிப்பு உடனடியாக மேல் எழுதப்படுகிறது. தனி துவக்கம் தேவையில்லை, பரிமாற்றம் எதுவும் செய்யப்படவில்லை. 0 முதல் n−1 வரையிலான முழு எண்கள் போன்ற சில எளிய செயல்பாட்டால் மூலத்தை வரையறுக்கும் பொதுவான வழக்கில், மூலத்தை வெறுமனே செயல்பாட்டுடன் மாற்றலாம், ஏனெனில் செயல்பாட்டின் போது மூலத்தை ஒருபோதும் மாற்ற முடியாது. n உறுப்புகளின் ஒரு வரிசையை தோராயமாக மாற்றப்பட்ட மூலத்தின் நகலுக்கு துவக்குவதற்கு, இரண்டும் 0-அடிப்படையிலானவைஃ i க்கு 0 முதல் n − 1 வரை random முழு எண்ணை செய்யுங்கள், அதாவது 0 ≤ j ≤ i என்றால் j ≤ i a [i] ≤ a [j] a [j] ≤ சோர்ஸ் [i] இன்சைட்-அவுட் ஷஃபிள் தூண்டல் மூலம் சரியானதாகக் காணலாம். ஒரு சரியான சீரற்ற எண் ஜெனரேட்டரைக் கருதினால், ஒவ்வொன்றும் n! சீரற்ற அழைப்புகளிலிருந்து பெறக்கூடிய சீரற்ற எண்களின் வெவ்வேறு வரிசைகள் மதிப்புகளின் வேறுபட்ட வரிசைமாற்றத்தை உருவாக்கும், எனவே இவை அனைத்தும் சரியாக ஒரு முறை பெறப்படுகின்றன. துவக்கப்படாத வரிசை மதிப்புகளை அணுகுவதில் எந்தப் பிரச்சினையும் இல்லாத மொழிகளில் j §i ஐத் தவிர்க்க முடியுமா என்பதைச் சரிபார்க்கும் நிபந்தனை. இது Hn ≈ ln n + γ தேவையற்ற பணிகளின் எதிர்பார்க்கப்படும் செலவில் நிபந்தனைக்குட்பட்ட n கிளைகளை நீக்குகிறது. இந்த நுட்பத்தின் மற்றொரு நன்மை என்னவென்றால், n, மூலத்தில் உள்ள உறுப்புகளின் எண்ணிக்கை, முன்கூட்டியே அறியப்பட வேண்டியதில்லை; மூலத் தரவின் முடிவை அடையும் போது மட்டுமே நாம் அதைக் கண்டறிய முடியும். வரிசைக்கு கீழே a என்பது காலியிலிருந்து தொடங்கி மீண்டும் மீண்டும் கட்டப்பட்டுள்ளது, மேலும் a.length என்பது தற்போதைய கூறுகளின் எண்ணிக்கையைக் குறிக்கிறது. ஒரு வெற்று வரிசை a ஐ தோராயமாக மாற்றியமைக்கப்பட்ட மூலத்தின் நகலுக்கு துவக்குவதற்கு, அதன் நீளம் தெரியவில்லைஃ அதே நேரத்தில் source.moreDataAvailable j → சீரற்ற முழு எண் 0 ≤ j ≤ a.length என்றால் j = a.length a.append (source.next) இல்லையெனில் a.append (a [j]) a [j] source.next சத்தோலோவின் வழிமுறை மிகவும் ஒத்த வழிமுறை 1986 ஆம் ஆண்டில் சாண்ட்ரா சத்தோலோவால் (அதிகபட்ச) நீளம் n இன் ஒரே மாதிரியாக விநியோகிக்கப்பட்ட சுழற்சிகளை உருவாக்குவதற்காக வெளியிடப்பட்டது. டர்ஸ்டன்ஃபீல்டின் மற்றும் சத்தோலோவின் வழிமுறைகளுக்கு இடையிலான ஒரே வித்தியாசம் என்னவென்றால், மேலே உள்ள படி 2 இல், சீரற்ற எண் ஜே இடையே உள்ள வரம்பிலிருந்து தேர்ந்தெடுக்கப்படுகிறது. இந்த எளிய மாற்றம் வழிமுறையை மாற்றியமைக்கிறது, இதன் விளைவாக வரும் வரிசைமாற்றமானது எப்போதும் ஒரு சுழற்சியைக் கொண்டிருக்கும். உண்மையில், கீழே விவரிக்கப்பட்டுள்ளபடி, சாதாரண ஃபிஷர்-யேட்ஸ் ஷஃபிள் நோக்கம் கொண்டிருக்கும்போது தற்செயலாக சத்தோலோவின் வழிமுறையை செயல்படுத்துவது மிகவும் எளிதானது. இது (n−1) இன் சிறிய தொகுப்பிலிருந்து வரிசைமாற்றங்களைத் தேர்ந்தெடுப்பதன் மூலம் முடிவுகளை சார்புப்படுத்தும்! அனைத்து n இன் முழு தொகுப்புக்குப் பதிலாக N நீளத்தின் சுழற்சிகள்! சாத்தியமான வரிசைமாற்றங்கள். சத்தோலோவின் வழிமுறை எப்போதும் n நீள சுழற்சியை உருவாக்குகிறது என்ற உண்மையை தூண்டல் மூலம் காட்ட முடியும். வளையத்தின் ஆரம்ப மறு செய்கைக்குப் பிறகு, மீதமுள்ள மறு செய்கைகள் n−1 நீள சுழற்சியின் படி முதல் n−1 உறுப்புகளை வரிசைப்படுத்துகின்றன என்று தூண்டல் மூலம் வைத்துக்கொள்வோம் (மீதமுள்ள மறு செய்கைகள் அந்த முதல் n−1 உறுப்புகளுக்கு பயன்படுத்தப்படும் சத்தோலோவின் வழிமுறை மட்டுமே). இதன் பொருள் என்னவென்றால், ஆரம்ப உறுப்பை அதன் புதிய நிலை p க்கு தடமறிதல், பின்னர் முதலில் நிலை p இல் உள்ள உறுப்பு அதன் புதிய நிலைக்கு, மற்றும் பல, மற்ற அனைத்து நிலைகளையும் பார்வையிட்ட பிறகு மட்டுமே ஒருவர் ஆரம்ப நிலைக்குத் திரும்புகிறார். ஆரம்ப மறு செய்கை இறுதி உறுப்பை (இறுதி அல்லாத) நிலை k உடன் மாற்றியது என்று வைத்துக்கொள்வோம், மேலும் முதல் n−1 உறுப்புகளின் அடுத்தடுத்த வரிசைமாற்றமானது அதை நிலை l க்கு நகர்த்தியது என்று வைத்துக்கொள்வோம்; அனைத்து n உறுப்புகளின் வரிசைமாற்றத்தை π முதல் n−1 உறுப்புகளின் மீதமுள்ள வரிசைமாற்றத்துடன் ஒப்பிடுகிறோம். இப்போது குறிப்பிட்டபடி அடுத்தடுத்த நிலைகளைக் கண்டறிவது, நிலை k ஐ அடையும் வரை π மற்றும் σ க்கு இடையே எந்த வித்தியாசமும் இல்லை. ஆனால், பின்னர், π இன் கீழ், முதலில் நிலை k இல் உள்ள உறுப்பு நிலை l க்கு பதிலாக இறுதி நிலைக்கு நகர்த்தப்படுகிறது, மேலும் இறுதியாக நிலையில் உள்ள உறுப்பு நிலை l க்கு நகர்த்தப்படுகிறது. அங்கிருந்து, π க்கான நிலைகளின் வரிசை மீண்டும் σ க்கான வரிசையைப் பின்பற்றுகிறது, மேலும் அனைத்து நிலைகளும் தேவைக்கேற்ப ஆரம்ப நிலைக்கு திரும்புவதற்கு முன்பு பார்வையிடப்பட்டிருக்கும். வரிசைமாற்றங்களின் சமமான நிகழ்தகவைப் பொறுத்தவரை, மாற்றியமைக்கப்பட்ட வழிமுறை (n−1) ஐ உள்ளடக்கியது என்பதைக் கவனிக்க போதுமானது! உருவாக்கப்பட்ட சீரற்ற எண்களின் தனித்துவமான சாத்தியமான வரிசைகள், அவை ஒவ்வொன்றும் தெளிவாக வேறுபட்ட வரிசைமாற்றத்தை உருவாக்குகின்றன, மேலும் அவை ஒவ்வொன்றும் நிகழ்கின்றன-சீரற்ற எண் மூலமானது பக்கச்சார்பற்றது என்று கருதி-சமமான நிகழ்தகவுடன். (n − 1)! இவ்வாறு உருவாக்கப்பட்ட வெவ்வேறு வரிசைமாற்றங்கள் n நீள சுழற்சிகளின் தொகுப்பை துல்லியமாக வெளியேற்றுகின்றனஃ அத்தகைய ஒவ்வொரு சுழற்சியும் இறுதி நிலையில் n மதிப்புடன் ஒரு தனித்துவமான சுழற்சி குறியீட்டைக் கொண்டுள்ளது, இது (n−1) ஐ அனுமதிக்கிறது! சுழற்சி குறியீட்டின் மற்ற நிலைகளை நிரப்ப மீதமுள்ள மதிப்புகளின் வரிசைமாற்றங்கள். பைத்தானில் உள்ள சாட்டோலோவின் வழிமுறையின் ஒரு மாதிரி செயல்படுத்தல்ஃ சீரற்ற இறக்குமதியிலிருந்து ரேண்ட்ரேஞ்ச் டெஃப் சாட்டோலோ _ சைக்கிள் (உருப்படிகள்)-> எதுவுமில்லைஃ "" சாட்டோலோவின் வழிமுறை ". i = லென் (உருப்படிகள்) அதே நேரத்தில் i> 1: i = i-1j = ரேண்ட்ரேஞ்ச் (i) #0 <= j <= i-1 உருப்படிகள் [j], உருப்படிகள் [i] = உருப்படிகள் [i], உருப்படிகள் [j] மற்ற ஷஃபிளிங் வழிமுறைகளுடன் ஒப்பீடு ஃபிஷர்-யேட்ஸ் ஷஃபிளின் அறிகுறியற்ற நேரம் மற்றும் இட சிக்கலானது உகந்ததாகும். உயர்தர பக்கச்சார்பற்ற சீரற்ற எண் மூலத்துடன் இணைந்து, இது பக்கச்சார்பற்ற முடிவுகளைத் தருவதற்கும் உத்தரவாதம் அளிக்கிறது. வேறு சில தீர்வுகளுடன் ஒப்பிடுகையில், இதன் விளைவாக வரும் வரிசைமாற்றத்தின் ஒரு பகுதி மட்டுமே தேவைப்பட்டால், அதை பாதியிலேயே நிறுத்தலாம், அல்லது நிறுத்தி மீண்டும் மீண்டும் தொடங்கலாம், இது தேவைக்கேற்ப வரிசைமாற்றத்தை அதிகரிக்கிறது. அனைத்து உறுப்புகளிலிருந்தும் தோராயமாக தேர்ந்தெடுக்கப்பட்ட மற்றொரு உறுப்புடன் ஒவ்வொரு உறுப்பையும் மாற்றுவதற்கான அப்பாவித்தனமான முறை பக்கச்சார்பானது. வெவ்வேறு வரிசைமாற்றங்கள் உருவாக்கப்படுவதற்கான வெவ்வேறு நிகழ்தகவுகளைக் கொண்டிருக்கும், ஏனென்றால் வெவ்வேறு வரிசைமாற்றங்களின் எண்ணிக்கை, வழிமுறையின் சீரற்ற விளைவுகளின் எண்ணிக்கையை சமமாக வகுக்காது. குறிப்பாக, பெர்ட்ராண்டின் அனுமானத்தின் படி, மற்றும் இடையே குறைந்தது ஒரு பகா எண் இருக்கும், மேலும் இந்த எண் வகுக்கப்படும், ஆனால் வகுக்கப்படாது. சீரற்ற இறக்குமதியிலிருந்து ரேண்ட்ரேஞ்ச் டெஃப் நைவ் _ ஷஃபிள் (உருப்படிகள்)-> எதுவுமில்லைஃ "" ஒரு அப்பாவித்தனமான முறை. என்ன செய்யக்கூடாது என்பதற்கு இது ஒரு எடுத்துக்காட்டு-அதற்கு பதிலாக ஃபிஷர்-யேட்ஸ் பயன்படுத்தவும். n = லென் (உருப்படிகள்) i க்கு வரம்பில் (n): j = ரேண்ட்ரேஞ்ச் (n) #0 <= j <= n-1 உருப்படிகள் [j], உருப்படிகள் [i] = உருப்படிகள் [i], உருப்படிகள் [j] வரிசைப்படுத்துதல் ஒரு மாற்று முறை தொகுப்பின் ஒவ்வொரு உறுப்புக்கும் ஒரு சீரற்ற எண்ணை ஒதுக்கி, பின்னர் ஒதுக்கப்பட்ட எண்களுக்கு ஏற்ப தொகுப்பை வரிசைப்படுத்துகிறது. வரிசைப்படுத்தும் முறை ஃபிஷர்-யேட்ஸின் அதே அறிகுறியற்ற நேர சிக்கலைக் கொண்டுள்ளதுஃ பொதுவான வரிசைப்படுத்தல் ஓ (என் லாக் என்) என்றாலும், எண்கள் ஓ (என்) நேரத்தில் ரேடிக்ஸ் வரிசையைப் பயன்படுத்தி திறம்பட வரிசைப்படுத்தப்படுகின்றன. ஃபிஷர்-யேட்ஸ் கலப்பைப் போலவே, வரிசைப்படுத்தும் முறையும் பக்கச்சார்பற்ற முடிவுகளைத் தருகிறது. இருப்பினும், ஒதுக்கப்பட்ட சீரற்ற எண்கள் ஒருபோதும் நகலெடுக்கப்படுவதில்லை என்பதை உறுதிப்படுத்த கவனமாக இருக்க வேண்டும், ஏனெனில் வரிசைப்படுத்தும் வழிமுறைகள் பொதுவாக ஒரு டை ஏற்பட்டால் சீரற்ற முறையில் கூறுகளை ஆர்டர் செய்யாது. கூடுதலாக, இந்த முறைக்கு அறிகுறியற்ற வகையில் பெரிய இடம் தேவைப்படுகிறதுஃ சீரற்ற எண்களுக்கு O (n) கூடுதல் சேமிப்பு இடம், ஃபிஷர்-யேட்ஸ் ஷஃபிளுக்கு O (1) இடம். இறுதியாக, வரிசைப்படுத்தும் முறை ஒரு எளிய இணையான செயல்பாட்டைக் கொண்டுள்ளது, இது ஃபிஷர்-யேட்ஸ் ஷஃபிள் போலல்லாமல், இது தொடர்ச்சியானது. பயனர் குறிப்பிட்ட ஒப்பீட்டு செயல்பாடுகளுடன் வரிசைப்படுத்துவதை ஆதரிக்கும் மொழிகளில் சில பயன்பாடுகளைக் கண்ட மேற்கண்ட முறையின் மாறுபாடு, சீரற்ற மதிப்புகளைத் தரும் ஒப்பீட்டு செயல்பாட்டுடன் ஒரு பட்டியலை வரிசைப்படுத்துவதன் மூலம் அதை மாற்றுவதாகும். இருப்பினும், இது மிகவும் சீரான விநியோகங்களை உருவாக்க வாய்ப்புள்ளது, இது கூடுதலாக பயன்படுத்தப்படும் வரிசைப்படுத்தல் வழிமுறையை பெரிதும் சார்ந்துள்ளது. உதாரணமாக, குயிக்ஸார்ட் வரிசைப்படுத்தல் வழிமுறையாகப் பயன்படுத்தப்படுகிறது என்று வைத்துக்கொள்வோம், ஒரு நிலையான உறுப்பு முதல் பிவோட் உறுப்பாக தேர்ந்தெடுக்கப்படுகிறது. வழிமுறை மையக்கருவை மற்ற அனைத்து உறுப்புகளுடனும் ஒப்பிட்டு அவற்றை குறைவான மற்றும் அதை விட பெரியவையாக பிரிக்கத் தொடங்குகிறது, மேலும் அந்த குழுக்களின் ஒப்பீட்டு அளவுகள் மையக்கரு உறுப்பின் இறுதி இடத்தை தீர்மானிக்கும். ஒரே சீராக விநியோகிக்கப்பட்ட சீரற்ற வரிசைமாற்றத்திற்கு, ஒவ்வொரு சாத்தியமான இறுதி நிலையும் மைய உறுப்புக்கு சமமாக இருக்க வேண்டும், ஆனால் ஆரம்ப ஒப்பீடுகள் ஒவ்வொன்றும் சமமான நிகழ்தகவுடன் "குறைவாக" அல்லது "அதிகமாக" திரும்பினால், அந்த நிலை p = 1/2 க்கு இருமப் பகிர்வைக் கொண்டிருக்கும், இது முனைகளுக்கு அருகிலுள்ள நிலைகளை விட மிக அதிக நிகழ்தகவுடன் வரிசையின் நடுவில் உள்ள நிலைகளை வழங்குகிறது. ஒன்றிணைத்தல் வகைப்படுத்தல் போன்ற பிற வரிசைப்படுத்தல் முறைகளில் பயன்படுத்தப்படும் சீரற்ற ஒப்பீட்டு செயல்பாடுகள் மிகவும் சீரானதாகத் தோன்றும் முடிவுகளைத் தரக்கூடும், ஆனால் அவை அவ்வாறு இல்லை, ஏனெனில் இரண்டு வரிசைகளை ஒன்றிணைப்பதன் மூலம் அவற்றில் ஒன்றை சமமான நிகழ்தகவுடன் மீண்டும் மீண்டும் தேர்ந்தெடுப்பதன் மூலம் (ஒரு வரிசையின் சோர்வு காரணமாக தேர்வு கட்டாயப்படுத்தப்படும் வரை) ஒரு சீரான விநியோகத்துடன் முடிவுகளைத் தராது; அதற்கு பதிலாக ஒரு வரிசையைத் தேர்ந்தெடுப்பதற்கான நிகழ்தகவு அதில் எஞ்சியிருக்கும் கூறுகளின் எண்ணிக்கைக்கு விகிதாசாரமாக இருக்க வேண்டும். உண்மையில், சமமான நிகழ்தகவுடன் ("நாணயம் புரட்டுதல்") இருவழி சீரற்ற நிகழ்வுகளை மட்டுமே பயன்படுத்தும் எந்த முறையும், ஒரு வரம்புக்குட்பட்ட எண்ணிக்கையிலான முறை மீண்டும் மீண்டும், ஒரு சீரான விநியோகத்துடன் ஒரு வரிசையின் (இரண்டுக்கும் மேற்பட்ட உறுப்புகளின்) வரிசைமாற்றங்களை உருவாக்க முடியாது, ஏனென்றால் ஒவ்வொரு செயல்படுத்தும் பாதையும் நிகழ்தகவாக ஒரு விகிதமுறு எண்ணைக் கொண்டிருக்கும், அதே நேரத்தில் தேவையான நிகழ்தகவு 1/n! ஒவ்வொரு சாத்தியமான வரிசைமாற்றத்திற்கும் அந்த வடிவம் இல்லை. கொள்கையளவில் இந்த ஷஃபிளிங் முறை முடிவற்ற சுழல்கள் அல்லது அணுகல் மீறல்கள் போன்ற நிரல் தோல்விகளுக்கு கூட வழிவகுக்கும், ஏனென்றால் ஒரு வரிசைப்படுத்தல் வழிமுறையின் சரியான தன்மை சீரற்ற மதிப்புகளை உருவாக்கும் ஒப்பீடு நிச்சயமாக இல்லாத வரிசை உறவின் பண்புகளைப் பொறுத்தது. இந்த வகையான நடத்தை ஒருபோதும் ஒரு ஒப்பீட்டைச் செய்யாத வரிசைப்படுத்தும் நடைமுறைகளில் ஏற்படக்கூடாது என்றாலும், அதன் முடிவை உறுதியாகக் கணிக்க முடியும் (முந்தைய ஒப்பீடுகளின் அடிப்படையில்), வேண்டுமென்றே அத்தகைய ஒப்பீடுகளைச் செய்வதற்கு சரியான காரணங்கள் இருக்கலாம். உதாரணமாக, எந்தவொரு உறுப்பும் தனக்கு சமமாக ஒப்பிட வேண்டும் என்ற உண்மை, செயல்திறன் காரணங்களுக்காக அவற்றை சென்டினல் மதிப்பாகப் பயன்படுத்த அனுமதிக்கிறது, மேலும் இது நடந்தால், ஒரு சீரற்ற ஒப்பீட்டு செயல்பாடு வரிசைப்படுத்தல் வழிமுறையை உடைக்கும். ஃபிஷர்-யேட்ஸ் ஷஃபிளை செயல்படுத்தும்போது, வழிமுறையை செயல்படுத்துவதிலும், அது கட்டமைக்கப்பட்ட சீரற்ற எண்களின் தலைமுறையிலும் கவனமாக இருக்க வேண்டும், இல்லையெனில் முடிவுகள் கண்டறியக்கூடிய சார்பைக் காட்டக்கூடும். சார்பின் பல பொதுவான ஆதாரங்கள் கீழே பட்டியலிடப்பட்டுள்ளன. செயல்பாட்டு பிழைகள் ஃபிஷர்-யேட்ஸ் ஷஃபிளை செயல்படுத்தும்போது ஒரு பொதுவான பிழை தவறான வரம்பிலிருந்து சீரற்ற எண்களைத் தேர்ந்தெடுப்பது ஆகும். குறைபாடுள்ள வழிமுறை சரியாக வேலை செய்வதாகத் தோன்றலாம், ஆனால் அது ஒவ்வொரு சாத்தியமான வரிசைமாற்றத்தையும் சமமான நிகழ்தகவுடன் உருவாக்காது, மேலும் இது சில வரிசைமாற்றங்களை உருவாக்காமல் போகலாம். எடுத்துக்காட்டாக, ஒரு பொதுவான ஆஃப்-பை-ஒன் பிழை, மேலே உள்ள எடுத்துக்காட்டில் இடமாற்றம் செய்ய உள்ளீட்டின் குறியீடு ஜே ஐத் தேர்ந்தெடுப்பது, அது மாற்றப்படும் உள்ளீட்டின் குறியீடு i ஐ விட எப்போதும் கண்டிப்பாக குறைவாக இருக்கும். இது ஃபிஷர்-யேட்ஸ் ஷஃபிளை சட்டோலோவின் வழிமுறையாக மாற்றுகிறது, இது அனைத்து கூறுகளையும் உள்ளடக்கிய ஒரு சுழற்சியைக் கொண்ட வரிசைமாற்றங்களை மட்டுமே உருவாக்குகிறதுஃ குறிப்பாக, இந்த மாற்றத்துடன், வரிசையின் எந்த உறுப்பும் அதன் அசல் நிலையில் முடிவடைய முடியாது. இதேபோல், ஒவ்வொரு மறு செய்கையிலும் செல்லுபடியாகும் வரிசை குறியீடுகளின் முழு வரம்பிலிருந்தும் எப்போதும் j ஐத் தேர்ந்தெடுப்பது ஒரு பக்கச்சார்பான முடிவை உருவாக்குகிறது, இருப்பினும் குறைவாக வெளிப்படையாக உள்ளது. அவ்வாறு செய்வது மாறுபாடுகளின் தனித்துவமான சாத்தியமான வரிசைகளை வழங்குகிறது என்பதிலிருந்து இதைக் காணலாம், அதேசமயம் n மட்டுமே உள்ளன! ஒரு n-உறுப்பு வரிசையின் சாத்தியமான வரிசைமாற்றங்கள். nn ஐ ஒருபோதும் n ஆல் சமமாக வகுக்க முடியாது என்பதால்! n> 2 (n-1 ஆல் வகுக்கப்படுவதால், இது n உடன் எந்த பகாக் காரணிகளையும் பகிர்ந்து கொள்ளாது), சில வரிசைமாற்றங்கள் மற்றவர்களை விட அதிக nn மாறுபாடுகளின் வரிசைகளால் உருவாக்கப்பட வேண்டும். இந்த சார்புக்கு ஒரு உறுதியான எடுத்துக்காட்டாக, மூன்று-உறுப்பு வரிசையை [1,2,3] மாற்றுவதன் சாத்தியமான விளைவுகளின் விநியோகத்தைக் கவனியுங்கள். இந்த வரிசையில் 6 சாத்தியமான வரிசைமாற்றங்கள் உள்ளன (3! = 6), ஆனால் வழிமுறை 27 சாத்தியமான மாற்றங்களை உருவாக்குகிறது (33 = 27). இந்த விஷயத்தில், [1,2,3], [3,1,2], மற்றும் [3,2,1] ஒவ்வொன்றும் 27 ஷஃபிள்களில் 4 இன் விளைவாகும், அதே நேரத்தில் மீதமுள்ள 3 வரிசைமாற்றங்கள் ஒவ்வொன்றும் 27 ஷஃபிள்களில் 5 இல் நிகழ்கின்றன. வலதுபுறத்தில் உள்ள மேட்ரிக்ஸ் 7 நீளம் கொண்ட பட்டியலில் உள்ள ஒவ்வொரு உறுப்பின் நிகழ்தகவையும் வேறு எந்த நிலையிலும் முடிவடைவதையும் காட்டுகிறது. பெரும்பாலான உறுப்புகளுக்கு, அவற்றின் அசல் நிலையில் (மேட்ரிக்ஸின் முக்கிய மூலைவிட்டத்தில்) முடிவடைவது மிகக் குறைந்த நிகழ்தகவைக் கொண்டுள்ளது என்பதைக் கவனியுங்கள், மேலும் ஒரு ஸ்லாட்டை பின்னோக்கி நகர்த்துவது மிக உயர்ந்த நிகழ்தகவைக் கொண்டுள்ளது. ஃபிஷர்-யேட்ஸ் ஷஃபிள் செய்வது என்பது பல்வேறு வரம்புகளிலிருந்து ஒரே மாதிரியாக விநியோகிக்கப்பட்ட சீரற்ற முழு எண்களைத் தேர்ந்தெடுப்பதை உள்ளடக்கியது. இருப்பினும், பெரும்பாலான சீரற்ற எண் ஜெனரேட்டர்கள்-உண்மை அல்லது சூடோரேண்டம்-0 முதல் RAND _ MAX வரை ஒரு நிலையான வரம்பில் மட்டுமே நேரடியாக எண்களை வழங்கும், மேலும் சில நூலகங்களில், RAND _ MAX 32767 வரை குறைவாக இருக்கலாம். அத்தகைய எண்களை விரும்பிய வரம்பிற்குள் கட்டாயப்படுத்த ஒரு எளிய மற்றும் பொதுவாகப் பயன்படுத்தப்படும் வழி மாடுலோ ஆபரேட்டரைப் பயன்படுத்துவதாகும்; அதாவது, அவற்றை வரம்பின் அளவால் வகுத்து மீதமுள்ளவற்றை எடுத்துக் கொள்ளுங்கள். இருப்பினும், 0-1 முதல் 0-n வரையிலான ஒவ்வொரு வரம்பிலும் சீரற்ற எண்களை உருவாக்க ஃபிஷர்-யேட்ஸ் ஷஃபிள் தேவை, இந்த வரம்புகளில் சில சீரற்ற எண் ஜெனரேட்டரின் இயற்கையான வரம்பை சமமாக பிரிக்காது என்பதற்கு கிட்டத்தட்ட உத்தரவாதம் அளிக்கிறது. எனவே, எஞ்சியவை எப்போதும் சமமாக விநியோகிக்கப்படாது, இன்னும் மோசமாக, சார்பு முறைப்படி சிறிய எஞ்சியவர்களுக்கு ஆதரவாக இருக்கும். எடுத்துக்காட்டாக, உங்கள் சீரற்ற எண் மூலமானது 0 முதல் 99 வரையிலான எண்களைக் கொடுக்கிறது (ஃபிஷர் மற்றும் யேட்ஸின் அசல் அட்டவணைகளைப் போலவே), மேலும் நீங்கள் 0 முதல் 15 வரை ஒரு பக்கச்சார்பற்ற சீரற்ற எண்ணைப் பெற விரும்புகிறீர்கள் என்று வைத்துக்கொள்வோம். நீங்கள் எண்களை 16 ஆல் வகுத்து, மீதமுள்ளவற்றை எடுத்துக் கொண்டால், 0-3 எண்கள் மற்றவர்களை விட 17 சதவீதம் அதிகமாக இருப்பதை நீங்கள் காண்பீர்கள். ஏனென்றால், 16 என்பது 100 ஐ சமமாக வகுக்காதுஃ 100 ஐ விட குறைவான அல்லது சமமான 16 இன் மிகப்பெரிய பெருக்கல் 6 × 16 = 96 ஆகும், மேலும் முழுமையற்ற வரம்பில் உள்ள எண்களே சார்பை ஏற்படுத்துகின்றன. சிக்கலை சரிசெய்வதற்கான எளிய வழி, மீதமுள்ளவற்றை எடுப்பதற்கு முன்பு அந்த எண்களை நிராகரிப்பதும், பொருத்தமான வரம்பில் ஒரு எண் வரும் வரை மீண்டும் முயற்சி செய்வதும் ஆகும். கொள்கையளவில் இது, மோசமான நிலையில், என்றென்றும் எடுக்கக்கூடும் என்றாலும், எதிர்பார்க்கப்படும் மறுபயன்பாடுகளின் எண்ணிக்கை எப்போதும் ஒன்றுக்கு குறைவாகவே இருக்கும். ஒரு சீரற்ற மிதக்கும்-புள்ளி எண்ணை முதலில் உருவாக்கும் செயல்பாடுகளுடன் தொடர்புடைய சிக்கல் ஏற்படுகிறது-பொதுவாக வரம்பில் [0,1]-பின்னர் அதை விரும்பிய வரம்பின் அளவால் பெருக்கி, கீழே வட்டமிடவும். இங்குள்ள சிக்கல் என்னவென்றால், சீரற்ற மிதக்கும் புள்ளி எண்கள், கவனமாக உருவாக்கப்பட்டாலும், எப்போதும் வரையறுக்கப்பட்ட துல்லியத்தை மட்டுமே கொண்டுள்ளன. இதன் பொருள் என்னவென்றால், எந்தவொரு வரம்பிலும் ஒரு வரையறுக்கப்பட்ட எண்ணிக்கையிலான மிதக்கும் புள்ளி மதிப்புகள் மட்டுமே உள்ளன, மேலும் வரம்பு இந்த எண்ணை சமமாகப் பிரிக்காத பல பிரிவுகளாகப் பிரிக்கப்பட்டால், சில பிரிவுகள் மற்றவர்களை விட அதிக சாத்தியமான மதிப்புகளுடன் முடிவடையும். இதன் விளைவாக ஏற்படும் சார்பு முந்தைய வழக்கில் இருந்த அதே முறையான கீழ்நோக்கிய போக்கைக் காட்டாது என்றாலும், அது இன்னும் இருக்கும். சூடோரேண்டம் ஜெனரேட்டர்கள் ஃபிஷர்-யேட்ஸ் ஷஃபிள் ஒரு சூடோரேண்டம் எண் ஜெனரேட்டர் அல்லது பி. ஆர். என். ஜி உடன் பயன்படுத்தப்படும்போது ஒரு கூடுதல் சிக்கல் ஏற்படுகிறதுஃ அத்தகைய ஜெனரேட்டரின் எண்களின் வெளியீட்டின் வரிசை ஒரு வரிசையின் தொடக்கத்தில் அதன் உள் நிலையால் முழுமையாக தீர்மானிக்கப்படுவதால், அத்தகைய ஜெனரேட்டரால் இயக்கப்படும் ஷஃபிள் ஜெனரேட்டருக்கு தனித்துவமான நிலைகளைக் கொண்டிருப்பதை விட மிகவும் தனித்துவமான வரிசைமாற்றங்களை உருவாக்க முடியாது. சாத்தியமான நிலைகளின் எண்ணிக்கை வரிசைமாற்றங்களின் எண்ணிக்கையை விட அதிகமாக இருந்தாலும், எண்களின் வரிசைகளிலிருந்து வரிசைமாற்றங்களுக்கு வரைபடத்தின் ஒழுங்கற்ற தன்மை என்பது சில வரிசைமாற்றங்கள் மற்றவர்களை விட அடிக்கடி நிகழும் என்பதாகும். எனவே, சார்புகளைக் குறைக்க, PRNG இன் நிலைகளின் எண்ணிக்கை குறைந்தபட்சம் பல அளவிலான வரிசைகளால் வரிசைமாற்றங்களின் எண்ணிக்கையை விட அதிகமாக இருக்க வேண்டும். எடுத்துக்காட்டாக, பல நிரலாக்க மொழிகள் மற்றும்/அல்லது நூலகங்களால் வழங்கப்பட்ட உள்ளமைக்கப்பட்ட போலி எண் ஜெனரேட்டரில் பெரும்பாலும் 32 பிட்கள் உள் நிலை மட்டுமே இருக்கலாம், அதாவது இது 232 வெவ்வேறு எண்களின் வரிசைகளை மட்டுமே உருவாக்க முடியும். அத்தகைய ஜெனரேட்டர் 52 விளையாடும் அட்டைகளின் தளத்தை கலக்க பயன்படுத்தினால், அது எப்போதும் 52 இல் மிகச் சிறிய பகுதியை மட்டுமே உருவாக்க முடியும்! ≈ 2225.6 சாத்தியமான வரிசைமாற்றங்கள். 226 பிட்களுக்கும் குறைவான உள் நிலை கொண்ட ஒரு ஜெனரேட்டருக்கு 52-அட்டை தளத்தின் சாத்தியமான அனைத்து வரிசைமாற்றங்களையும் உருவாக்குவது சாத்தியமற்றது. எந்தவொரு சூடோரேண்டம் எண் ஜெனரேட்டரும் துவக்க புள்ளியில் இருந்து தொடங்கி, தனித்துவமான விதை மதிப்புகள் இருப்பதை விட தனித்துவமான வரிசைகளை உருவாக்க முடியாது. எனவே, 1024 பிட்கள் உள் நிலையைக் கொண்ட ஒரு ஜெனரேட்டர், ஆனால் 32-பிட் விதையுடன் துவக்கப்பட்டாலும், துவக்கத்திற்குப் பிறகு 232 வெவ்வேறு வரிசைமாற்றங்களை மட்டுமே உருவாக்க முடியும். வரிசைமாற்றங்களை உருவாக்குவதற்கு ஜெனரேட்டரைப் பயன்படுத்தத் தொடங்குவதற்கு முன்பு ஒருவர் பல முறை பயன்படுத்தினால் அது அதிக வரிசைமாற்றங்களை உருவாக்க முடியும், ஆனால் இது சீரற்ற தன்மையை அதிகரிப்பதற்கான மிகவும் திறமையற்ற வழியாகும்ஃ ஜெனரேட்டரை ஒரு பில்லியன் வரை சீரற்ற எண்ணைப் பயன்படுத்த ஒருவர் ஏற்பாடு செய்ய முடியும் என்று வைத்துக்கொள்வோம், எளிமைக்காக 230 என்று சொல்லுங்கள், துவக்கத்திற்கும் வரிசைமாற்றங்களை உருவாக்குவதற்கும் இடையிலான நேரங்கள், பின்னர் சாத்தியமான வரிசைமாற்றங்களின் எண்ணிக்கை இன்னும் 262 மட்டுமே. மேலே விவரிக்கப்பட்ட வரம்பைக் குறைப்பதற்கான வகுத்தல் மற்றும் எடுத்தல்-தக்கவைத்தல் முறையுடன் ஒரு எளிய நேரியல் ஒற்றுமை PRNG பயன்படுத்தப்படும்போது மேலும் ஒரு சிக்கல் ஏற்படுகிறது. இங்குள்ள சிக்கல் என்னவென்றால், மாடுலோ 2e உடன் ஒரு நேரியல் ஒற்றுமை PRNG இன் குறைந்த வரிசை பிட்கள் உயர் வரிசை பிட்களை விட குறைவான சீரற்றவைஃ ஜெனரேட்டரின் குறைந்த n பிட்கள் அதிகபட்சம் 2n காலத்தைக் கொண்டுள்ளன. வகுத்தி இரண்டின் சக்தியாக இருக்கும்போது, மீதமுள்ளவற்றை எடுத்துக்கொள்வது என்பது உயர்-வரிசை பிட்களை தூக்கி எறிவதைக் குறிக்கிறது, அதாவது ஒன்று கணிசமாக குறைவான சீரற்ற மதிப்புடன் முடிவடைகிறது. எல். சி. ஜி. யில் பிரைம் மாடுலோ இருந்தால் வெவ்வேறு விதிகள் பொருந்தும், ஆனால் அத்தகைய ஜெனரேட்டர்கள் அசாதாரணமானவை. மோசமான தரமான ஆர்என்ஜி அல்லது பிஆர்என்ஜி மோசமான தரமான ஷஃபிள்களை உற்பத்தி செய்யும் என்ற பொதுவான விதிக்கு இது ஒரு எடுத்துக்காட்டு. ஒரு வரிசை நீர்த்தேக்க மாதிரியை மாற்றுவதை அடிப்படையாகக் கொண்ட ஒரு ஸ்ட்ரீம் சைஃபர் ஆர். சி. 4 ஐயும் பார்க்கவும், குறிப்பாக ஃபிஷர்-யேட்ஸ் ஷஃபிள் குறிப்புகளின் நிபுணத்துவமான அல்காரிதம் ஆர் வெளிப்புற இணைப்புகள் ஒரு ஊடாடும் எடுத்துக்காட்டு ஒருங்கிணைந்த வழிமுறைகள் சீரற்ற வழிமுறைகள் வரிசைமாற்றங்கள் மான்டே கார்லோ முறைகள் எடுத்துக்காட்டுடன் கூடிய போலி குறியீடு கட்டுரைகள் பைதான் (நிரலாக்க மொழி) குறியீட்டைக் கொண்ட கட்டுரைகள்