# ich muss diese aufgabe kaufen, aber ich weiß nicht wie kann ich es machen.könnten Sie mir bitte helfen



## hiam (18. Feb 2021)

Schreiben Sie ein Programm, dass erwartet k Cluster (k∈ {1,2,…, 10}) befindet. Zu jedem dieser Cluster sollen dann 100 zweidimensionale Datenpunkte auftreten werden. Dazu gehört das Programm im ersten Schritt k Richtungs ci (i = 1,2,… k) in [−100; 100] 2als Ausgangspunkte für die Clusterfolgen. Um diese Ausgangspunkte sollen dann alle 100 Datenpunkte als normalverständliche Zufallszahlen mit dem Verständnis ci und einer gewissen Standardabweichung (sigma = 1,…, 3) werden werden.


----------



## LimDul (18. Feb 2021)

Die Antwort ist nein:

a) Die Aufgabe ist kein verständliches Deutsch So ist die nicht verständlich. 
b) Bei konkreten Fragen hilft man gerne, aber komplette Aufgaben machen - eher nein. Sprich. fang mal an und baue eine Rumpf und frag dann konkret nach wo es klemmt. Aber bitte in verständlichen Sätzen. Wenn Deutsch nicht deine Muttersprache ist und die Aufgabe auch nicht in Deutsch ist - entweder in Originalsprache (sofern englisch) fragen oder ein Forum mit der passenden Sprache suchen.


----------



## hiam (18. Feb 2021)

Die aufgabe ist auf deutsch.Ich habe die aufgabe nicht versteht,deswegen kann ich nicht weiter darüber lösen.
----------------------------------------------------------------------------

Schreiben Sie ein Programm, dass zufällig k Cluster (k∈{1,2 ,…,10 })
erzeugt. Zu jedem dieser Cluster sollen dann 100 zweidimensionale
Datenpunkte zufällig erzeugt werden.
Dazu sollte das Programm im ersten Schritt k zufällige Punkte ci (i=1,2,…k )
in [−100 ;100 ]2als Ausgangspunkte für die Cluster erzeugen. Um diese
Ausgangspunkte sollen dann jeweils 100 Datenpunkte als normalverteilte
Zufallszahlen mit dem Mittelwert ci und einer zufälligen
Standardabweichung (sigma = 1, … , 3) erzeugt werden.


----------



## PinkMuffin (18. Feb 2021)

Was genau verstehst du daran nicht? Weißt du was Mittelwert, Standardabweichung, Normalverteilung etc sind? 
Nur sagen "ich verstehe es nicht" ist nutzlos, woher sollen wir wissen, warum du es nicht verstehst? Wenn es an der Sprache liegt, bringt es ja nichts, wenn hier jemand diese Aufgabe in eigenen Worten wiederholt.


----------



## hiam (18. Feb 2021)

ja ,ich weiss Mittelwert, Standardabweichung.aber die normalverteilte weiss nicht wie kann ich machen.


für die erste teil mus so sein (
Schreiben Sie ein Programm, dass zufällig k Cluster (k∈{1,2 ,…,10 })
erzeugt. Zu jedem dieser Cluster sollen dann 100 zweidimensionale
Datenpunkte zufällig erzeugt werden.)
lösung :
for(int i=0;i<10;i++){
for(int j=0;j<200;j++){
}}


----------



## M.L. (18. Feb 2021)

Muss man Java verwenden ?  Python im Zusammenhang mit Panda und anderen Bibliotheken könnte hier auch helfen: https://realpython.com/k-means-clustering-python/


----------



## hiam (18. Feb 2021)

dankeee.

ja ich muss java verwenden


----------



## mihe7 (18. Feb 2021)

hiam hat gesagt.:


> aber die normalverteilte weiss nicht wie kann ich machen.











						Standard Normal Distribution (SND) - Java Program - GeeksforGeeks
					

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.




					www.geeksforgeeks.org


----------



## temi (20. Feb 2021)

hiam hat gesagt.:


> Schreiben Sie ein Programm, dass zufällig k Cluster (k∈{1,2 ,…,10 })
> erzeugt. Zu jedem dieser Cluster sollen dann 100 zweidimensionale
> Datenpunkte zufällig erzeugt werden.)
> lösung :
> ...


Vergleiche: `100 Datenpunkte` und `int j=0;j<200;`. Für die zweidimensionalen Datenpunkte gilt, dass du je *einen* Datenpunkt mit *zwei* Dimensionen erzeugen sollst, nicht 200 Datenpunkte.


----------



## hiam (20. Feb 2021)

temi hat gesagt.:


> Vergleiche: `100 Datenpunkte` und `int j=0;j<200;`. Für die zweidimensionalen Datenpunkte gilt, dass du je *einen* Datenpunkt mit *zwei* Dimensionen erzeugen sollst, nicht 200 Datenpunkte.


Vielen dan für die Antwort.
Ich habe ein Frage.
Für die Mittelwer und Standardabweichung soll nur ein Zahl sein dadurch kann an der regel machen.Aber in meine Aufgabe steht "Mittelwert ci" und "Standardabweichung (sigma = 1,…, 3)" ,Soll ich Mittelwert so rechnen "(1+2+3+4+5+6+7+8+9+10)/10" und "Standardabweichung (sigma = 1,…, 3)" wie kann ich rechnen ?


----------



## hiam (20. Feb 2021)

In diese Aufgabe soll ich ein Programm schreiben ,dass ich ein function mit zwei parameter Mittelwertund,Standardabweichung  machen.

Es muss so Sein :
public void Normalverteilte_Zufallszahlen(double Mittelwertund,double Standardabweichung ){

}
​


----------



## mihe7 (20. Feb 2021)

Hast Du den Link nicht gelesen? Random#nextGaussian() liefert eine normalverteilte Zufallszahl mit einer Standardabweichung von 1.0 um den Erwartungswert 0.0. Du brauchst also nur mit der gewünschten Standardabweichung zu multiplizieren und den gewünschten Mittelwert zu addieren. 


```
private Random rand = new Random();

public double nextRandom(double mean, double deviation) {
    return mean + rand.nextGaussian() * deviation;
}
```


----------



## hiam (20. Feb 2021)

mihe7 hat gesagt.:


> Hast Du den Link nicht gelesen? Random#nextGaussian() liefert eine normalverteilte Zufallszahl mit einer Standardabweichung von 1.0 um den Erwartungswert 0.0. Du brauchst also nur mit der gewünschten Standardabweichung zu multiplizieren und den gewünschten Mittelwert zu addieren.
> 
> 
> ```
> ...


vielen dank für die Antwort.
Könnten Sie bitte sehen,ob diese lösung  richtig ist.


```
public void Zufall(int mittel,int abweichung) {
        Random rand = new Random();
        double [][] arra = new double[10][10];
       
        for(int i=1;i<=10;i++) {
            System.out.println("Das ist die Cluter : "+ i);
              for(int j=0;j<arra.length;j++) {
                for(int k=0;k<arra[j].length;k++) {
                   
                    arra[j][k]= mittel + rand.nextGaussian() * abweichung;
                    
                    System.out.print(arra[j][k] + " ");
                }System.out.println("");
            }
       
        }
    }
```


----------



## mihe7 (20. Feb 2021)

hiam hat gesagt.:


> ob diese lösung richtig ist.



Nein. Das ist alles Unsinn. Dein i geht bis 10, Du verwendest i nirgends und was willst Du mit einem 10x10 Array?

Von vorne:


hiam hat gesagt.:


> Schreiben Sie ein Programm, dass zufällig k Cluster (k∈{1,2 ,…,10 }) erzeugt.


1. Schritt: wähle k zwischen 1 und 10 zufällig. Das ist die Anzahl der Cluster.



hiam hat gesagt.:


> Dazu sollte das Programm im ersten Schritt k zufällige Punkte ci (i=1,2,…k )
> in [−100 ;100 ]2als Ausgangspunkte für die Cluster erzeugen.


2. Schritt: für jedes i mit 1 <= i <= k erzeuge jeweils einen zufälligen Punkt (m_ix, m_iy) ∈ [-100;100]². Das ist der "Mittelpunkt" des Clusters.



hiam hat gesagt.:


> Um diese
> Ausgangspunkte sollen dann jeweils 100 Datenpunkte als normalverteilte
> Zufallszahlen mit dem Mittelwert ci und einer zufälligen
> Standardabweichung (sigma = 1, … , 3) erzeugt werden


3. Schritt: um jeden erzeugten "Mittelpunkt" (m_ix, m_iy) erzeugst Du 100 zufällige Punkte (p_ijx, p_ijy). Dabei ist p_ijx eine normalverteilte Zufallszahl um den Mittelwert m_ix, während p_ijy eine normalverteilte Zufallszahl um den Mittelwert m_iy ist (jeweils mit gegebener Standardabweichung).


----------



## hiam (20. Feb 2021)

mihe7 hat gesagt.:


> Nein. Das ist alles Unsinn. Dein i geht bis 10, Du verwendest i nirgends und was willst Du mit einem 10x10 Array?


10*10Array ist 100 zweidimensionale Datenpunkte.
Ich habe wirklich ganze Tag probiert um es zu lösen.aber alles ist falsch.
Ich weiss nicht wie kann ich es noch lösen wirklich


----------



## mihe7 (20. Feb 2021)

hiam hat gesagt.:


> 10*10Array ist 100 zweidimensionale Datenpunkte.


Ne, das sind zehn 10-dimensionale Datenpunkte.



hiam hat gesagt.:


> Ich weiss nicht wie kann ich es noch lösen wirklich


Rechne mal per Hand für 2 Cluster und 3 Punkte je Cluster.


----------



## hiam (20. Feb 2021)

mihe7 hat gesagt.:


> Ne, das sind zehn 10-dimensionale Datenpunkte.
> 
> 
> Rechne mal per Hand für 2 Cluster und 3 Punkte je Cluster.


jede Cluster hat 3punkte db haben wir 6 punkte insgesamt


----------



## mihe7 (20. Feb 2021)

Ja, und wie berechnest Du nun diese 6 Punkte per Hand?


----------



## hiam (20. Feb 2021)

Vielen Dankee für die Antworten.


Ich weiss nicht


----------



## mihe7 (21. Feb 2021)

1. Wähle einen zufälligen Mittelpunkt
2. Berechne 3 zufällige Punkte, die normalverteilt um den Mittelpunkt liegen.
3. Wähle nächsten zufälligen Mittelpunkt
4. Berechne 3 zufällige weitere Punkte, die normalverteilt um den Mittelpunkt liegen.

Ist jetzt nicht so schwer, oder?


----------



## hiam (21. Feb 2021)

Wir haben Mittelwert = 0
um die 3 Punkte ze berechnen ,machen wir nur die Regel :Z = (X - u) / s

X ist die zufällige Punkte
u ist die Mittelwert=0
s ist die Standardabweichung.


----------



## mihe7 (21. Feb 2021)

Um die 3 Punkte zu berechnen, brauchst Du lediglich Math.nextGaussian()*s+u zu rechnen. Und zwar je Punkt einmal für die x-Koordinate und einmal für die y-Koordinate.


----------



## hiam (21. Feb 2021)

mihe7 hat gesagt.:


> Um die 3 Punkte zu berechnen, brauchst Du lediglich Math.nextGaussian()*s+u zu rechnen. Und zwar je Punkt einmal für die x-Koordinate und einmal für die y-Koordinate.


ja. und was soll ich noch weiter machen


----------



## mihe7 (22. Feb 2021)

Die Schritte 1, 2 und 3 aus Kommentar #14 als Java-Code schreiben.

Fang mal mit Schritt 1 an. Das solltest Du problemlos hinbekommen.


----------

