3-ডি ইউনিটের বলগুলিতে কীভাবে সমানভাবে বিতরণ করা হবে?


11

আমি পূর্ববর্তী একটি প্রশ্ন পোস্ট করেছি , এটি সম্পর্কিত তবে আমি মনে করি যে অন্য থ্রেড শুরু করা ভাল। এবার আমি ভাবছি যে 3-ডি ইউনিট গোলকের ভিতরে কীভাবে সমানভাবে বিতরণকৃত পয়েন্ট তৈরি করা যায় এবং কীভাবে দৃশ্যমান এবং পরিসংখ্যানগতভাবে বিতরণটি পরীক্ষা করতে হয়? আমি এই পরিস্থিতিতে সরাসরি স্থানান্তরযোগ্য সেখানে পোস্ট করা কৌশলগুলি দেখছি না।


4
পূর্ববর্তী প্রশ্নে কৌশল সরাসরি প্রয়োগ একবার আপনি মান্য যে দূরত্ব মধ্যে বিন্দুর সংখ্যা বংশোদ্ভুত সমানুপাতিক হতে হবে 3 । তাই যদি আপনি একটি স্বাধীন অভিন্ন variate উৎপন্ন তোমার দর্শন লগ করা মধ্যে [ 0 , 1 ] একটি বিন্দু সহ W গোলক পৃষ্ঠের উপর, স্কেলিং W দ্বারা তোমার দর্শন লগ করা 1 / 3 কৌতুক আছে। rr3u[0,1]wwu1/3
whuber

@ শুভ: সম্ভবত আমি কেবল আগের কৌশলগুলির সারাংশ পাইনি। আপনি বর্ণিত কি আমাকে চেষ্টা করুন। অতিরিক্তভাবে, এখানে আবার অভিন্নতা যাচাই করার উপায়গুলি কী কী?
কিয়াং লি

2
@ কিয়াং রিপলির কে ফাংশন এবং চি-স্কোয়ার পরীক্ষা। আপনি গোলকের পৃষ্ঠের পয়েন্টগুলির রেডিয়াল প্রক্ষেপণের একতা, পয়েন্টগুলির দৈর্ঘ্যের ঘনক্ষেত্রের অভিন্নতা এবং two দুটির স্বাধীনতাও পরীক্ষা করতে পারেন।
whuber

আমার জন্য, এটি "সমানভাবে বিতরণ" এর অর্থ এতটা স্পষ্ট নয় ... এবং সম্ভবত এটি সংজ্ঞায়িত করার

fR,Θ,Φ(r,θ,ϕ)=r2

উত্তর:


14

43πr3=0.523...


+1 টি। এটি কম্প.গ্রাফিক্স.এলগোরিদিম এফএকিউ "গোলকের উপর অভিন্ন র্যান্ডম পয়েন্ট"
ডেভিড ক্যারি

1
n>100

2
একে "প্রত্যাখ্যান পদ্ধতি" বলা হয়। সাতাশটি মাত্রা অনুসারে তিনটি মাত্রায় ভালভাবে কাজ করার সময়, ট্রিলিয়ন পয়েন্টের মধ্যে কেবল একটিই 27-বলের মধ্যে থাকে এবং বাকি 27-কিউবটিতে থাকে না, তাই প্রত্যাখ্যান পদ্ধতিটি সাধারণভাবে কার্যকর হয় না। আমি এটি উল্লেখ করছি কারণ আমার বর্তমানে 2,440 মাত্রার বলটিতে সমানভাবে নমুনাগুলি প্রয়োজন need
রেব কেবিন

13

xyzx=rsinθcosϕy=rsinθsinϕz=rcosθ

ϕ02πrθrr3r3r2rθ(1cosθ)/21(1cos(θ))/2θ>π/2θsin(θ)/2

θ11

R এ নীচের মত প্রদর্শিত হবে।

n <- 10000 # For example n = 10,000.
phi <- runif(n, max=2*pi)
r <- runif(n)^(1/3)
cos_theta <- runif(n, min=-1, max=1)
x <- r * sqrt(1-cos_theta^2) * cos(phi)
y <- r * sqrt(1-cos_theta^2) * sin(phi)
z <- r * cos_theta

এই উত্তরটি লেখার এবং সম্পাদনার সময় আমি বুঝতে পেরেছিলাম যে সমাধানটি আমার ধারণা থেকে কম তুচ্ছ।

(x,y,z)r

xyz <- matrix(rnorm(3*n), ncol=3)
lambda <- runif(n)^(1/3) / sqrt(rowSums(xyz^2))
xyz <- xyz*lambda

3
এটি প্রত্যাখ্যান না করার কারণে এটি আরও ভাল উত্তর। উচ্চ মাত্রিক স্থানগুলিতে, গ্রহণযোগ্যতার কম সম্ভাবনার কারণে প্রত্যাখ্যানের নমুনা খুব ব্যয়বহুল হতে পারে।
কিংডিয়নিয়ন

2
কোডের শেষ বিটটি উচ্চ মাত্রায় মানিয়ে নিতে পারে, বলুন d। এই জন্য, 3দ্বারা সমস্ত দৃষ্টান্ত প্রতিস্থাপন d
gui11aume

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.