ich auf einem Platz<random> uniform_real_distribution mit einem Mindestabstand zwischen den Punkten
#include <random>
using namespace std;
int main(){
random_device rd;
long int seed = rd();
default_random_engine gen(seed);
double max=10.0, min=-10.0;
uniform_real_distribution<double> uni_real(min,max);
double random_x = uni_real(gen);
double random_y = uni_real(gen);
return 0;
}
mit einer Liste von Koordinaten bin zu erzeugen würde Ich mag zwischen zwei beliebigen Punkten, um sicherzustellen, dass ein Mindestabstand ist. Für meine Verwendung muss dies gelten, wenn periodische Randbedingungen angewendet werden.
<random>
Bibliothek zu diesem. Gibt es irgendwelche?O(n^2)
, wie ich bin nicht zu sehr mit Effizienz im Augenblick. Es sei denn, es gibt einen einfachen Algorithmus, der dies ausführen kann.Andere Fragen um, wo entweder mit dem dritten Punkt oder mit anderen Umgebung aus <random>
.
Sie können Ihre Punkte in einen Container legen. Überprüfen Sie für den n-ten Punkt den Abstand zwischen den vorhandenen und es und fügen Sie es, wenn die Abstandsanforderung aktiviert ist, der Liste hinzu. Es ist nicht optimiert, aber es ist ein Ausgangspunkt. – Jepessen
Wie viele Punkte müssen Sie generieren? –
Im Moment bin ich okay mit höchstens 5000. In einem zweiten Moment würde ich wahrscheinlich viel mehr mögen, in der Größenordnung von einer Million. –