मुझे एक छद्म-यादृच्छिक जनरेटर की आवश्यकता है जो इनपुट के रूप में एक संख्या लेता है और एक और संख्या चुड़ैल प्रतिलिपि बनाता है और यादृच्छिक प्रतीत होता है।सरल छद्म-यादृच्छिक एल्गोरिदम
- प्रत्येक इनपुट संख्या ठीक एक उत्पादन संख्या के लिए मैच चाहिए और इसके विपरीत
- ही इनपुट संख्या हमेशा एक ही उत्पादन संख्या
- अनुक्रमिक इनपुट संख्या है कि एक साथ करीब हैं में परिणाम (। 1 और जैसे 2) का उत्पादन करना चाहिए पूरी तरह से अलग आउटपुट नंबर (उदाहरण 1 => 9783526, 2 => 283)
यह सही नहीं होना चाहिए, यह केवल यादृच्छिक लेकिन पुन: उत्पन्न परीक्षण डेटा बनाने के लिए है।
मैं सी # का उपयोग करता हूं।
मैंने कुछ समय पहले इस हास्यास्पद टुकड़े को लिखा था जिसने कुछ यादृच्छिक उत्पादन किया था।
public static long Scramble(long number, long max)
{
// some random values
long[] scramblers = { 3, 5, 7, 31, 343, 2348, 89897 };
number += (max/7) + 6;
number %= max;
// shuffle according to divisibility
foreach (long scrambler in scramblers)
{
if (scrambler >= max/3) break;
number = ((number * scrambler) % max)
+ ((number * scrambler)/max);
}
return number % max;
}
मैं कुछ बेहतर, अधिक भरोसेमंद, किसी भी आकार के आकार (कोई अधिकतम तर्क) के साथ काम करना चाहता हूं।
क्या यह शायद सीआरसी एल्गोरिदम का उपयोग करके हल किया जा सकता है? या कुछ थोड़ा शफल सामान।
आप एक हैश फ़ंक्शन चाहते हैं। – phoku
http://stackoverflow.com/questions/239063 – sbi
@ एसबीआई का डुबकी: यह सुनिश्चित नहीं है कि इनपुट और आउटपुट के बीच विशेष पत्राचार की आवश्यकता के मुताबिक यह एक सटीक डुप्लिकेट है। नीचे दिए गए मेरे उत्तर पर 'tanascius' टिप्पणी देखें। – MusiGenesis