मैंने एक सरल यादृच्छिक जनरेटर डिज़ाइन किया है जो एक अव्यवस्थित और मापांक विधि का उपयोग करके दो संख्याओं को अराजक तरीके से तैयार करता है। यह उसके लिए बहुत अच्छा काम करता है।
यदि मैं इसे एक सिफर जनरेटर के रूप में उपयोग करना चाहता था, तो यह एक ज्ञात प्लेटेक्स्ट हमले के लिए कमजोर होगा, यह देखते हुए कि एक हमलावर कम्प्यूटेशनल रूप से कुशल तरीके से यादृच्छिक संख्याओं की एक श्रृंखला से बीज को उलट सकता है।
सिफर को तोड़ने के लिए बीज मानों की एक कानूनी जोड़ी का पता लगाएं, जो संभव के रूप में कम शक्ति, सीपीयू-समय आदि का उपयोग करते हुए, रेंज [7? 255] में एक पंक्ति में 7 शून्य उत्पन्न करते हैं।
यहाँ जावास्क्रिप्ट में लिखा गया यादृच्छिक जनरेटर है:
function seed(state1,state2){
//Constants
var mod1=4294967087
var mul1=65539
var mod2=4294965887
var mul2=65537
function random(limit){
//Cycle each state variable 1 step
state1=(state1*mul1)%mod1
state2=(state2*mul2)%mod2
//Return a random variable
return (state1+state2)%limit
}
//Return the random function
return random
}
//Initiate the random generator using 2 integer values,
//they must be in the ranges [1;4294967086] and [1;4294965886]
random=seed(31337,42)
//Write 7 random values in the range [0;255] to screen
for(a=0;a<7;a++){
document.write(random(256)+"<br>")
}
मैंने उम्मीदवार संख्या जोड़े के परीक्षण के लिए एक उपकरण बनाया है, यह यहां पाया जा सकता है ।
अगले 3 दिनों के लिए, किसी स्पॉइलर की अनुमति नहीं है , एक उत्तर में केवल संख्याओं का एक सेट होना चाहिए, और यह निश्चित रूप से पिछले सॉल्वर द्वारा पोस्ट किए गए लोगों से अलग सेट होना चाहिए। इसके बाद आपको कोड पोस्ट करने और अपने दृष्टिकोण को समझाने के लिए प्रोत्साहित किया जाता है।
संपादित करें, संगरोध खत्म हो गया है:
उत्तर में हल करने की विधि का दस्तावेजीकरण करने के लिए संख्याओं और स्पष्टीकरण और कोड दोनों का एक अनूठा सेट होना चाहिए।
सबसे सुंदर समाधान जीतता है।
रिकॉर्ड के लिए:
एक प्रोग्राम लिखना जो एक समाधान पा सकता है जल्दी से सुरुचिपूर्ण है।
एक कार्यक्रम है कि एक GPU की सुविधाओं का उपयोग कुशलता से यह भी तेजी से करने के लिए सुरुचिपूर्ण है बनाना।
"म्यूजियमवेयर" के एक टुकड़े पर काम करना सुरुचिपूर्ण है।
एक समाधान विधि खोजना जो केवल पेन और पेपर का उपयोग करके संभवत: उपयोग किया जा सकता है।
एक निर्देशात्मक और आसानी से समझने योग्य तरीके से अपने समाधान की व्याख्या करना सुरुचिपूर्ण है।
कई या बहुत महंगे कंप्यूटरों का उपयोग करना असभ्य है।