javascript जावास्क्रिप्ट गणित के बारे में प्रश्न। आयामी()और बुनियादी तर्क




math random (4)

मैंने यादृच्छिक सरणी अंतर की तुलना करने के लिए कोड का एक सरल टुकड़ा लिखा और कुछ पाया ... जो मुझे समझ में नहीं आया।

  1. मैं यादृच्छिक संख्याओं से भरे 2 सरणियों को उत्पन्न करता हूं
  2. यादृच्छिक संख्याओं के बीच अंतर जोड़ें
  3. औसत अंतर का प्रिंट आउट लें

मुझे उम्मीद है कि परिणाम यादृच्छिक संख्या 0.5 के करीब होगा, लेकिन व्यवहार में, यह 0.3333 है।

यादृच्छिक संख्या 0.3 और 0.5 पर घर सरणी क्यों नहीं है?

const result = document.getElementById('result');
const generateRandomNrArray = (nrNumbers) => {
	let i;
	let result = [];
	for (i = 0; i < nrNumbers; i++) {
		result.push(Math.random());
	}
	return result;
}
const getArrayDiff = (arr1, arr2) => {
  var diff = 0;
  arr1.forEach(function (v1, index) {
      diff += Math.abs(v1 - arr2[index]);
  });
  return diff;
}
const run = (nr) => {
  const arr1 = generateRandomNrArray(nr);
  const arr2 = generateRandomNrArray(nr);
  const totalDiff = getArrayDiff(arr1, arr2); 
  
  result.innerHTML = "Average difference:" + (totalDiff / nr);
}
button {font-size: 2em;}
<div id="result"></div>
<button id="run" onclick="run(1500)">Click Me</button>


परिणाम प्रदर्शित करने के लिए ज्यामितीय तर्क यहाँ दिया गया है कि परिणाम 1/3 में क्यों परिवर्तित होता है।

सबसे पहले, हम f (x, y) = abs (x - y) को परिभाषित करते हैं। हमें यह साबित करने की आवश्यकता है कि, X और Y एक समान वितरण के साथ दो स्वतंत्र यादृच्छिक चर हैं [0, 1], E (X, Y) = 1/3 में।

यदि हम 3 डी में फ़ंक्शन f की कल्पना करते हैं, तो वर्ग [0, 1] x [0, 1] से अधिक ऊँचाई वाले क्षेत्र के रूप में, f के अंतर्गत आयतन में दो टेट्राहेड्रा होते हैं, जिसका आधार अर्ध-इकाई वर्ग है, और जिसकी ऊँचाई एक है इकाई उच्च।

E (X, Y) f के अंतर्गत आयतन है। पिरामिड वॉल्यूम सूत्र द्वारा, दो टेट्राहेड्रा में से प्रत्येक में आयतन * h / 3 है जहाँ a इसका आधार क्षेत्र है और इसकी ऊँचाई h है। इसका मतलब है कि प्रत्येक टेट्राहेड्रोन में मात्रा 1/2 * 1 * 1/3 = 1/6 है, और इसलिए ई (एक्स, वाई) = 2 * 1/6 = 1/3 है।


(वास्तव में, आप मतभेदों को नहीं देख रहे हैं, लेकिन आपके यादृच्छिक संख्याओं के बीच पूर्ण अंतर पर । एक अंतर है। (दंड को दण्डित करें।)

यदि आपके पास दो स्वतंत्र समान रूप से वितरित यादृच्छिक चर X, Y ~ U[0,1] , तो उनका पूर्ण अंतर |XY| अपेक्षा के साथ एक त्रिकोणीय वितरण का पालन करेंगे 1/3। सब कुछ वैसा ही है जैसा होना चाहिए। यह वितरण परिणाम, साथ ही अपेक्षा की गणना, संभावना सिद्धांत में एक काफी मानक होमवर्क समस्या है। अंतर्ज्ञान सीधे मार्क के तर्क का अनुसरण करता है ।

यहाँ पूर्ण और गैर-पूर्ण अंतर के हिस्टोग्राम हैं। बाईं ओर, आप देखते हैं कि छोटे निरपेक्ष अंतर के लिए अधिक द्रव्यमान कैसे होता है, जो अपेक्षा को नीचे खींचता है।

आर कोड:

set.seed(1)
xx <- runif(1e5)
yy <- runif(1e5)
par(mfrow=c(1,2))
hist(abs(xx-yy),main="|X-Y|",col="grey",xlab="")
hist(xx-yy,main="X-Y",col="grey",xlab="")

(संयोग से, हमारी बहन साइट CrossValidated एक अद्भुत संसाधन है यदि आपके पास एक संभावना / सांख्यिकी प्रश्न है।)


असतत चर दृष्टिकोण के साथ

subdivide अंतराल [0; 1] में एन एलम्स (सम्मान k = 1 से N, X मान k/N लेगा)। बाद में हम N को संक्रमित कर देंगे

दिए गए X_k (जहाँ X मान k/N रखता है) के लिए, दिए गए avg दूरी की गणना करें

avgDistance(k) = sum_{i=1}^k (k-i)/N P(Y=i) + sum_{i=k+1}^n (i-k)/N P(Y=i)

पहला शब्द जब y <x, दूसरा शब्द जब x <y

पहला पद 0 और k के बीच की दूरी को 1/N(k(k+1)/2) कहता है, जबकि दूसरा कार्यकाल 1 और Nk के बीच की दूरी को 1/N(Nk)(N-k+1) । इसके अलावा P(Y=i) = 1/N सभी के लिए (क्योंकि Y समान रूप से वितरित है)

इस प्रकार

avgDistance(k) = 1/N^2 [ k(k+1)/2 + (N-k)(N-k+1)/2 ] = 1/(2N^2) [ 2k^2 + N^2 - 2kN + N ]

आखिरकार

avgDistance = sum_{k=1}^N avgDistance(k) P(X=k) = 1/N sum_{k=1}^N avgDistance(k) = 1/(2N^3) sum [ 2k^2 + N^2 - 2kN + N ]

आइडिया को एन ^ 3 + ... की तुलना में योग को सरल बनाना है। 3 से कम शब्द, इस प्रकार जब एन को संक्रमित करने की प्रवृत्ति होती है, तो हमें बस aN ^ 3 / (2N ^ 3) + कुछ मिलेगा जो 0 पर जाता है।

sum 2k^2 = 2(N(N+1)(2N+1))/6 ~ 4N^3/6
sum N^2 = N^3
sum -2kN = -2N(N(N+1)/2 ~= -N^3

इस प्रकार a = 4/6 और avgDistance = 1/3


इसे देखने का एक आसान प्राकृतिक तरीका है:

यदि आपके पास अंतराल है, तो <0.0, 1.0> लें <0.0, 1.0> और आप अनियमित रूप से अंतराल से एक नंबर लेते हैं, आप अनिवार्य रूप से अंतराल को दो भागों में विभाजित करेंगे <0.0, x> और <x, 1.0> । प्रत्येक भाग का औसत आकार (कई यादृच्छिक संख्याओं पर) 0.5 परिवर्तित हो जाएगा।

अब, यदि आप अंतराल से दो यादृच्छिक संख्याएँ चुनते हैं, तो आप अंतराल को तीन भागों में विभाजित कर रहे हैं <0.0, x> , <x, y> और <y, 1.0> ( x < y )। यदि आप कई यादृच्छिक संख्याओं पर प्रत्येक भाग के औसत आकार की गणना करते हैं, तो यह 1/3 परिवर्तित हो जाएगा।

दो संख्याओं के बीच का औसत अंतर भाग का औसत आकार है।

(मूल रूप से एक टिप्पणी)





statistics