मैं 25 अद्वितीय यादृच्छिक संख्याएं उत्पन्न करना चाहता हूं और उन्हें कंसोल में सूचीबद्ध करना चाहता हूं। संख्या कम से कम 10 वर्ण लंबी होनी चाहिए। ऐसा करने का कोई आसान तरीका?कई यादृच्छिक संख्याएं उत्पन्न करना
उत्तर
संख्या का निर्माण तारों के रूप में की कोशिश करो, और एक HashSet का उपयोग सुनिश्चित करने के लिए वे खास हैं:
Random random = new Random();
HashSet<string> ids = new HashSet<string>();
while (ids.Count < 25)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10; ++i)
{
sb.Append(random.Next(10));
}
ids.Add(sb.ToString());
}
उदाहरण आउटपुट:
7895499338 2643703497 0126762624 8623017810 ...etc...
वर्ग HashSet
नेट में मौजूद है 3.5 और नए।
समस्या "25 अद्वितीय यादृच्छिक" में थोड़ा सा है। 25 यादृच्छिक संख्याओं को प्रदर्शित करना
Random r = new Random();
for(int i=0; i<25; i++)
Console.WriteLine(r.Next(1,100).ToString());
ये आवश्यक नहीं हैं, हालांकि यह आवश्यक नहीं है। यदि आप डुप्लिकेट की अनुमति नहीं देना चाहते हैं, तो आपको किसी भी तरह से पहले जेनरेट किए गए नंबरों को स्टोर करने की आवश्यकता है, और यदि आप पुराने को दबाते हैं तो फिर से रोल करें।
ध्यान रखें कि आप इस तरह से जेनरेट किए गए नंबरों की संभावना वितरण को बदलते हैं।
संपादित करें: मैंने अभी देखा है कि ये संख्या दस वर्ण लंबी होनी चाहिए। चूंकि 9, 99, 99, 999 इंट 32.मैक्सवैल्यू से अधिक है, इसलिए मैं के बजाय Math.Floor(r.NextDouble() * 10000000000 + 1000000000)
का उपयोग करने का सुझाव दूंगा।
चूंकि आपकी संख्या इतनी लंबी है, आपको डुप्लिकेट के बारे में चिंता करने की आवश्यकता नहीं है। वे बहुत ही असंभव हैं।
'999 999 999'' int.MaxValue' से अधिक नहीं है। हालांकि एक अरब द्वारा 'r.Next() 'गुणा करना संभवतः हो सकता है। – IVlad
@IVlad: मेरा मतलब 10 '9 लिखना था। 'r.Next()' एक int के बजाय एक डबल देता है, इसलिए मैंने इसका उपयोग क्यों किया। – Jens
नहीं, 'r.Next() 'एक int देता है। आप 'r.NextDouble()' चाहते हैं, और फिर भी आप चीजों को कम कर रहे हैं। – IVlad
Random rnd = new Random(table);
for(int i = 0; i < 25; ++i) {
Console.WriteLine("{0}", rnd.Next(50, 50+i)
}
अद्वितीय होने की गारंटी नहीं है। – crazyscot
क्या आप एक डिजिटल कंप्यूटर पर एक तकनीक का सुझाव दे सकते हैं जिसकी गारंटी है। और मेरा मतलब 100% है? –
एक आसान तरीका यह है:
class Test
{
private static void Main()
{
Random rand = new Random();
for (int i = 0; i < 25; ++i)
{
Console.WriteLine(rand.Next(1000000000, int.MaxValue));
}
}
}
यह है कि संख्या हमेशा 10 अक्षर (अंक) लंबे होते हैं सुनिश्चित करेगा। हालांकि वे अनिवार्य रूप से अद्वितीय नहीं होंगे। यदि आप चाहते हैं उन्हें निश्चित रूप से अद्वितीय होने के लिए आपको कुछ इस तरह करना होगा:
class Test
{
private static void Main()
{
Random rand = new Random();
var generatedSoFar = new HashSet<int>();
for (int i = 0; i < 25; ++i)
{
int newRand;
do
{
newRand = rand.Next(1000000000, int.MaxValue);
} while (generatedSoFar.Contains(newRand)); // generate a new random number until we get to one we haven't generated before
generatedSoFar.Add(newRand);
Console.WriteLine(newRand);
}
}
}
आप दस से अधिक अंक होने के लिए सक्षम होना चाहते हैं, तो आप बिना किसी क्रम के 10 और के बीच अंकों की संख्या उत्पन्न अपने अंकों की अधिकतम संख्या। फिर StringBuilder या List में यादृच्छिक रूप से प्रत्येक अंक (या अंकों का समूह) उत्पन्न करें। आप विशिष्टता सुनिश्चित करने के लिए ऊपर उपयोग किए गए HashSet विधि का उपयोग कर सकते हैं।
यादृच्छिकता और विशिष्टता के बीच एक बड़ा अंतर है।
तो अगर आप वास्तव में अद्वितीय संख्या की जरूरत है क्या आप वाकई कहीं सब पहले से ही बनाई गई संख्या को बचाने और देखें कि क्या अपने नव निर्मित एक इस सूची में शामिल नहीं है बनाने के लिए है या आप कुछ एल्गोरिथ्म है कि एक है कि यह सुनिश्चित करता है प्रदान करने के लिए दिया गया नंबर दो बार नहीं बनाया जा सकता है।
काम करने के लिए दूसरा भाग पाने के लिए आप ज्यादातर सृजन पल की तिथि/समय लेते हैं, क्योंकि वर्तमान दिनांक/समय जोड़ी हमेशा के लिए अद्वितीय है। एकमात्र समस्या यह है कि आपके पास कितनी रचनाएं (मिली) सेकंड हैं और आपके अद्वितीय नंबर को स्टोर करने के लिए कितने अंक उपलब्ध हैं।
12 अंकों is made here का उपयोग करने के बारे में एक नमूना। उम्मीद है की यह मदद करेगा।
- 1. गैर-वर्दी यादृच्छिक संख्याएं उत्पन्न करना
- 2. बहुत बड़ी यादृच्छिक संख्याएं उत्पन्न करना जावा
- 3. वितरण के अनुसार यादृच्छिक संख्याएं उत्पन्न करें
- 4. बड़ी यादृच्छिक संख्याएं कैसे उत्पन्न करें सी
- 5. MATLAB में लॉगनोर्मल यादृच्छिक संख्याएं उत्पन्न करें?
- 6. "यादृच्छिक" कैसे उत्पन्न करें लेकिन "अद्वितीय" संख्याएं कैसे उत्पन्न करें?
- 7. जावा 7: थ्रेडलोकलरैंडम एक ही यादृच्छिक संख्याएं उत्पन्न करता है
- 8. मैन्युअल रूप से यादृच्छिक संख्याएं कैसे उत्पन्न करें
- 9. कुछ मानों को छोड़कर यादृच्छिक संख्याएं उत्पन्न करें
- 10. अद्वितीय खाता संख्याएं उत्पन्न करना - रिकर्सिव कॉल
- 11. जावा: एक बार में कई अलग-अलग यादृच्छिक संख्याएं चुनें
- 12. एक यादृच्छिक स्ट्रिंग उत्पन्न करना
- 13. टीआर 1/देव/यादृच्छिक (<1 सेकंड रन के लिए लचीला) का उपयोग कर सी ++ में यादृच्छिक संख्याएं उत्पन्न करना
- 14. यादृच्छिक संख्याएं और फर्श बनाम राउंड फ़ंक्शन
- 15. मल्टी-उपयोगकर्ता सास एप्लिकेशन में अनुक्रमिक संख्याएं उत्पन्न करना
- 16. यादृच्छिक enums उत्पन्न
- 17. यादृच्छिक प्रमाणपत्र उत्पन्न करें
- 18. यादृच्छिक बाइट कोको उत्पन्न करें?
- 19. दिए गए संभाव्यताओं के साथ यादृच्छिक पूर्णांक उत्पन्न करना
- 20. जावा (जोडा समय) में यादृच्छिक दिनांक समय उत्पन्न करना
- 21. रेंज में यादृच्छिक पूर्णांक उत्पन्न करना जो शून्य
- 22. यादृच्छिक और नकारात्मक संख्या
- 23. पुनरावर्तनीय यादृच्छिक संख्या अनुक्रम कैसे उत्पन्न करें?
- 24. यादृच्छिक HTML दस्तावेज़ कैसे उत्पन्न करें
- 25. टीसीपी: सीईसी/एएके संख्याएं कैसे उत्पन्न की जाती हैं?
- 26. linux tmpfs में उत्पन्न इनोड संख्याएं कैसे हैं?
- 27. एक यादृच्छिक उत्तल बहुभुज कैसे उत्पन्न करें?
- 28. फ़ाइल में कुल लाइन संख्याएं पुनर्प्राप्त करना
- 29. रुबी में यादृच्छिक तिथि कैसे उत्पन्न करें?
- 30. स्ट्रिंग कनवर्ट करें जिसमें कई संख्याएं पूर्णांक में हैं
अक्षरों से मुझे लगता है कि आप दशमलव अंक का मतलब है? –
हां वे अल्फान्यूमेरिक वर्ण भी हो सकते हैं .. कोई guid कृपया – Jasl
अल्फान्यूमेरिक! = यादृच्छिक संख्याएं। आप यादृच्छिक तार – RvdK