के रूप में काम नहीं कर रहा है इसलिए मैं एक ह्युरिस्टिक एल्गोरिदम लागू कर रहा हूं, और मैं इस समारोह में आया हूं।सी ++ का उपयोग करके कार्यान्वित एक पेपर से संभाव्यता घनत्व समारोह,
मेरे पास 1 से एन (0 से एन, 1 से सी, डब्ल्यू/ई) की एक सरणी है। मैं कई तत्वों को चुनना चाहता हूं जिन्हें मैं दूसरी सरणी में कॉपी करूंगा। पैरामीटर वाई को देखते हुए, (y < = 1), मैं उन संख्याओं का वितरण करना चाहता हूं जिनकी औसत (y * n) है। इसका मतलब है कि जब भी मैं इस समारोह को कॉल करता हूं, तो यह मुझे 0 और एन के बीच एक संख्या देता है, और इन संख्याओं का औसत y * n है।
लेखक के अनुसार, "एल" एक यादृच्छिक संख्या है: 0 < एल < एन। मेरे परीक्षण कोड पर वर्तमान में 0 < = l < = n उत्पन्न हो रहा है। और मेरे पास सही कोड था, लेकिन मैं इसके साथ घंटों तक गड़बड़ कर रहा हूं, और मैं इसे वापस कोड करने के लिए आलसी हूं।
तो मैं समारोह के पहले भाग कोडित, वाई < = 0.5 मैं y 0.2 करने के लिए सेट के लिए, और एन 100 इसका मतलब है कि यह 0 से 99 के बीच एक नंबर लौटना पड़ा, औसत 20. और साथ करने के लिए परिणाम 0 और एन के बीच नहीं हैं, लेकिन कुछ तैरते हैं। और बड़ा एन है, यह फ्लोट छोटा है।
यह सी परीक्षण कोड है। "एक्स" "एल" पैरामीटर है।
0.03354
0.00484
0.00003
0.00029
0.00020
0.00028
0.00263
0.01619
0.00032
0.00000
0.03598
0.03975
0.00704
0.00176
0.00001
0.01333
0.03396
0.02795
0.00005
0.00860
लेख है:
//hate how code tag works, it's not even working now
int n = 100;
float y = 0.2;
float n_copy;
for(int i = 0 ; i < 20 ; i++)
{
float x = (float) (rand()/(float)RAND_MAX); // 0 <= x <= 1
x = x * n; // 0 <= x <= n
float p1 = (1 - y)/(n*y);
float p2 = (1 - (x/n));
float exp = (1 - (2*y))/y;
p2 = pow(p2, exp);
n_copy = p1 * p2;
printf("%.5f\n", n_copy);
}
और यहाँ कुछ परिणाम (5 दशमलव छोटा कर दिया) कर रहे हैं
http://www.scribd.com/doc/3097936/cAS-The-Cunning-Ant-System
पृष्ठों 6 और 7
या खोज " सीएएस: चालाक चींटी प्रणाली "गूगल पर।
तो मैं गलत क्या कर रहा हूं? मुझे विश्वास नहीं है कि लेखक गलत है, क्योंकि इस कार्य को वर्णित 5 से अधिक कागजात हैं।
मेरे सभी इंटर्ननेट जो भी मेरी मदद करता है। यह मेरे काम के लिए महत्वपूर्ण है।
धन्यवाद :)
कोड टैग का उपयोग न करें। SO wierd है, यह कोड इंगित करने के लिए 4 रिक्त स्थान का उपयोग करता है। बस कोड कॉपी करें, फिर इसे सभी का चयन करें और फिर कोड बनाने के लिए 1010 बटन दबाएं। –
ऐसा इसलिए है क्योंकि प्रश्न और उत्तर बॉक्स मार्कडाउन का उपयोग करते हैं: http://daringfireball.net/projects/markdown/syntax – zwol