Punkt auf Ebene in Menge
lima-city → Forum → Programmiersprachen → Java
befinden
beispiel
code
dimension
ergebnis
erwarten
funktion
glauben
http
koordinate
kreisen
liegen
markierten punkte
problem
punkt
stehen
umsetzen
url
wachsen
zahl
-
Ich melde mich mal wieder mit einem Problem ;)
Der Titel ist leider nicht sehr aussagekräftig, ich versuche das ganze mal möglichst verständlich darzustellen:
Ich habe eine unendlich große Fläche. Nun bekomme ich eine zufällige Koordinate. Diese Koordinate wird einer Funktion übergeben, die mir zufällig entweder true oder false zurückgibt.
Soweit ganz einfach. Allerdings habe ich folgende Anforderungen:
1. Ich will die Punkte-Dichte beeinflussen können
2. Ich will als weiteren Eingabeparameter einen Seed, mit dem das ganze zuätzlich noch beeinflusst wird
3. Ich will nicht einfach random.nextDouble() verwenden und dort meinen Ergebnisraum einschränken (muss leider so sein (bitte nicht nachfragen, warum :D))
4. Es sollten möglichst nicht 2 Punkte nebeneinander liegen
Ich hatte bisher folgenden Ansatz:
Ich habe eine Koordinate gegeben, z. B. P( a = 724 | b = 451 ), in Binär also so: P( a = 1011010100 | b = 111000011 )
Nun werden die letzten 8 Bit der beiden Zahlen genommen:
a1 = 11010100
b1 = 11000011
Das was übrig bleibt, kommt in eine zweite Variable:
a2 = 10
b2 = 1
Nun kann ich a und b neu zuweisen:
a = a1 ^ a2; b = b1 ^ b2;
Jetzt habe ich 2 Zahlen, die sich in einer Größenordung befinden. Jetzt will ich irgendwas mit den beiden Zahlen machen, dass entweder true oder false herauskommt, und ich die Häufigkeit beeinflussen kann. Habt ihr irgendwelche Ideen?
Hoffe auf bitte (möglichst schnelle) Antworten.
BTW: Während dieses Beitrages mussten 3 Kekse vernichtet werden. Wenn ihr noch welche wollt, beeilt euch xD
Lg
Mator
Beitrag zuletzt geändert: 19.10.2012 19:34:37 von mator-kaleen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Kannst du bitte mal ein Beispiel angeben wie die Ergebnisse aussehen sollen?
Die einzelnen Anforderungen erscheinen mir willkürlich und unabhängig. Erst redest du was von einer Koordinate, dann irgendwas von Dichte. Da ist eine unendliche Ebene, deren Bezug zu der Koordinate nicht geklärt ist. Soll die drin liegen oder soll sie zu der Ebene in irgendeiner Beziehung stehen? Dann soll man die einer Funktion übergeben und daraufhin zufällig true oder false zurückgeben, aber, wenn es zufällig sein sollte, warum soll man dann noch die Koordinate übergeben?
Der Seed soll es beeinflussen, aber wie soll er es beieinflussen? Soll die Zufallsberechnung abhängig vom Seed deterministisch sein und wenn nicht, wie passt es dann da rein?
Zwei Punkte sollen nicht nebeneinander liegen, aber was heißt das? Welcher Abstand ist nebeneinander und in welcher/n Dimension/en?
Ich glaube da ist noch sehr viel Klärungsbedarf. -
Ich habe eine unendlich große Fläche.
mit sicherheit nicht - und wenn doch dann gäbe es ja gar keine dichte... -
@reimann
Ok, ich gebe zu, es ist blöd von mir erklärt.
Also nochmal: Ich gebe der Funktion eine x-Koordinate und eine y-Koordinate und einen festen Seed. Nun berechnet mir die Funktion, ob an dieser Stelle ein Punkt ist. Ich will jedoch darauf Einfluss nehmen können, wie viele Punkte ungefähr pro 128px*128px vorhanden sind -> Punktdichte. Das muss keine exakte Zahl sein, ich will das einfach variieren können.
Also im Grunde genommen ein absolut triviales Ergebnis: http://www.imagebanana.com/view/72dlq740/bsp1.png
oder mit höherer Dichte:
http://www.imagebanana.com/view/xsqdzwkz/bsp2.png
Allerdings glaube ich, dass ich mein Problem bereits lösen konnte, trotzdem Danke für die Hilfe ;)
@hcms
Das war einer der unproduktivstesn Beiträge, die ich hätte erwarten können. Manchmal muss man eben von Flächen ausgehen, die unendlich sind, auch wenn du dir das nicht vorstellen kannst.
Lg
mator -
Er hat aber Recht.
Wenn die endliche Anzahl der markierten Punkte in Relation zu unendlich vielen nicht markierten Punkten stehen dann ist die Punkte dichte immer gleich (0)
Was man aber machen kann ist die Dichte aufeine endliche Menge zu relativieren, indem man bspw. die unendlich große Fläche in Teilflächen aufteilt und innerhalb dieser endlich großen Teilfläche eine bestimmte Menge an Punkten markiert und definiert die Menge der markierten Punkte ist in jeder Teilfläche gleich groß und die Teilflächen sind es ebenfalls
Deine Beispiele zeigen das auch sehr schön, denn sie funktionieren nur wenn die Flächen begrenzt sind. Ich würde die Punktdichte nicht als Bewertungskriteriom benutzen sondern den Punktabstand, bei großer Punktdichte ist der projezierte Kreis um einen Punkt indem sich keine weiteren markierten Punkte befinden dürfen klein, ansonsten ist er groß.
Damit lassen sich auch die Unendlichkeitskriteren umsetzen da die Karte auf der suche nach weiteren erlaubten Bereichen wachsen muss.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage