मेरे पास एक enum है कि मैं यादृच्छिक रूप से एक मान का चयन करना चाहता हूं, लेकिन वास्तव में यादृच्छिक नहीं। मैं कुछ मूल्यों को अब तक चुनने की संभावना कम करना चाहता हूं। यहां मेरे पास अब तक है ...संभावना के साथ enum से यादृच्छिक मूल्य
private enum Type{
TYPE_A, TYPE_B, TYPE_C, TYPE_D, TYPE_E;
private static final List<Type> VALUES =
Collections.unmodifiableList(Arrays.asList(values()));
private static final int SIZE = VALUES.size();
private static final Random RANDOM = new Random();
public static Type randomType() {
return VALUES.get(RANDOM.nextInt(SIZE));
}
}
क्या इन मूल्यों में से प्रत्येक को संभावनाएं असाइन करने का कोई प्रभावी तरीका है?
कोड से here
मुझे लगता है कि आपको गलत समझा जाता है। आइडिया है - आप सभी वजन को सारांशित करते हैं। अब अधिकतम = गणना मूल्य के साथ शासक कल्पना करें। अब इस नियम पर प्रत्येक वजन को डैश करें, तो पहले (उत्तर में मेरे उदाहरण के अनुसार) 0 से 10, दूसरा 10 से 11, त्रिज्या 11 से 16 और इसी तरह होगा। अब अपनी उंगली को हमारे शासक के यादृच्छिक स्थान पर इंगित करें और देखें कि आप किस सेगमेंट को इंगित करते हैं। संपादित उत्तर –
वास्तव में यह है कि मैं क्या कर रहा था। धन्यवाद! – tgrosinger
बीटीडब्ल्यू अगर आप कन्स्ट्रक्टर में टाइप की सटीक सीमाएं टाइप करते हैं तो आप परफॉर्मेंस में सुधार कर सकते हैं, लेकिन पांच प्रकारों पर यह वास्तविक नहीं है। –