sprintf("%08X", rand(0xFFFFFFFF))
कुछ लोगों MAX-मूल्य रैंड की (0x7FFF) के साथ रैंड की खिड़कियों सीमा का उल्लेख या रैंड (32768) दशमलव, मैं इस द्विआधारी स्थानांतरण-ऑपरेटर '< <'
# overcomes the windows-rand()-only-works-with-max-15bit-(32767)-limitation:
# needed 8*4==32bit random-number:
# first get the 15 high-significant bits shift them 17bits to the left,
# then the next 15bits shifted 2 bits to the left,
# then the last 2 bits with no shifting:
printf('%08X', (
(rand(0x8000)<<17) + (rand(0x8000)<<2) + rand(0b100))
);
साथ काबू पाने होगा लेकिन मैं इस पर विचार करें अकादमिक के रूप में ly, क्योंकि यह वास्तव में अजीब कोड है जो समझना मुश्किल है।
मैं इसका उपयोग वास्तविक जीवन कोड में नहीं करूँगा, केवल तभी जब गति सबसे अधिक हो।
लेकिन शायद यह सबसे तेज़ समाधान है और यह रैंड() - खिड़कियों के नीचे फ़ंक्शन की सीमा को दूर करने के लिए एक स्कीमा का प्रदर्शन कर रहा है ...
स्रोत
2012-04-26 15:40:50
गोल्फ: 'perl -e'print [0..9, ए..एफ ] -> [रैंड 16] 1..8'' – daxim
क्यों डाउनवॉटिंग? मुझे प्रोग्रामिंग सीखने की ज़रूरत है। इस प्रकार के प्रश्नों के लिए स्टैक ओवरफ्लो क्या है? – unixman83
मैंने आपकी पोस्ट को वोट नहीं दिया। हालांकि, आम तौर पर, किसी भी सीपीएएन मॉड्यूल को बाहर करने पर अनुकूलता नहीं देखी जाती है। इसके अलावा, आपको अपने स्वयं के समाधान के साथ आने का कुछ प्रयास करने की उम्मीद है, और दूसरों को डिब्बाबंद समाधान देने की अपेक्षा करने के बजाय इसके साथ मदद मांगा जाए। –