kostenloser Webspace werbefrei: lima-city


Array

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    xasa

    xasa hat kostenlosen Webspace.

    hello guys

    ich habe ein kleines programm geschrieben und darin gibt es ein array, der ein paar zahlen speichert die ich benötige.
    Ma question à vous: wie kann ich bestimmen ob es ein paar (oder mehrere paare)
    nur 2 unterschiede haben? Denn der Differenz einiger zahlen beträgt nämlich 2 (ich weiss es, weil ich es normal nachgeprüft habe), aber ich weiss nicht wie ich es im programm prüfen sollte.

    ich hoffe ihr mir helfen and thanks for those who can aide moi.

    cya
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. ähm ... sorry versteh das problem absolut nicht
    gib bitte ein Beispiel oder einen Ausschnitt aus
    dem Code damit ich es verstehen kann.

    und vl probierst du etwas mehr deutsch zu schreiben ;P
    der Array ? das Array :P

    cu
  4. Autor dieses Themas

    xasa

    xasa hat kostenlosen Webspace.

    sry, hatte einfach mal lust dazu

    mein kleines programm dient dazu alle primzahlen zwischen 60 und 100 rauszufinden:
    <?php
    
    $n=60;
    while($n<=100)
    {
    $a=1;
    $arrTemp=array("");
    
    
    
    	
    	while($a<=60)
    		{
    			if(($n%$a)==0)
    	
    			{	
    			array_Push($arrTemp,"$a");
    			
    			}
    			$a++;
    		}
    		
    	
    		$i=count($arrTemp);
    		if ($i==2)
    			{
    				print $n;
    				print "<br>";
    				print " ist eine Primzahl";
    			}
    		else
    			{
    				print $n;
    				print "<br>";
    				print " ist keine Primzahl";
    			}	
    $n++;
    }
    ?>


    so schaut der code aus. und ich möchte rausfinden ob in $arrTemp ein Paar gibt, welche die Differenz zwei haben, also Primzahlzwillinge sind.
    hoffe du hast es jetzt verstanden.
    und wegen den fehlern, ich bim momentan zu müde um auf fehler zu achten.
    das nächste mal, behalte es.
    ich schenk sie dir :lol:
  5. $array=new array(1,2,3,4,5); //Der Array
    $array=sort($array,SORT_NUMERIC);//Nummerisches Sortieren
    $len=count($array);
    for(i=1;i<$len;$i++)
     {
     if($array[ i ]-$array[ i-1 ]==2)echo 'Treffer bei '.i.' !';
     }


    edit: Code Block

    edit2: Dämliche BBCodes

    Beitrag geaendert: 12.5.2007 20:46:11 von bladehunter
  6. Autor dieses Themas

    xasa

    xasa hat kostenlosen Webspace.

    tut mir leid, aber ich verstehe den code nicht so direkt.
    vlt noch eine passende erklärung bitte...
  7. Also, falls es Zahlen geben sollte, deren Abstand gleich 1 ist, müsste ich den Code noch mal anpassen. Aber hier die Erklärung:

    Wir haben zuerst den Array. Theoretisch müsste jedes Element mit jedem andere verglichen werden und das wäre ne Menge arbeit.
    Daher sortieren wir das Array, so dass die Zahlen in aufsteigender Reihenfolge im Array stehen und wir nur jeweils einen Nachbarn vergleichen müssen.

    Anschließend wird geschaut, wie lang das Array ist, da wir diese Information gleich in der for-Schleife brauchen, damit die Schleife nur so lange läuft, wie nötig.

    Die for-Schleife geht jetzt alle Elemente durch und vergleicht immer jedes Element mit seinem Vorgänger, ob bei einer Subtraktion 2 raus kommt.
  8. Autor dieses Themas

    xasa

    xasa hat kostenlosen Webspace.

    und wo muss ich deinen quellcode in meinem einsetzen??
    kannst du mir dann noch den endquellcode reinkopieren. wäre sehr net.


    Beitrag geaendert: 12.5.2007 20:50:54 von xasa
  9. Nimm es mir bitte nicht übel, aber Primzahlen bis zu einer oberen Grenze kann man viel effektiver finden: http://de.wikipedia.org/wiki/Sieb_des_Eratosthenes
  10. Autor dieses Themas

    xasa

    xasa hat kostenlosen Webspace.

    das is' aber nicht php oda?

  11. Nimm es mir bitte nicht übel, aber Primzahlen bis zu einer oberen Grenze kann man viel effektiver finden: http://de.wikipedia.org/wiki/Sieb_des_Eratosthenes

    <?php
    $bis = 1000;  //Soweit soll gesucht werden
    
    
    $possible = array(); //In einem Array werden dann alle möglichen Zahlen 
                         //gespeichert
    
    for ($i = 3; $i <= $bis; $i=$i+2)  //Alle ungeraden Zahlen, also jede 2te von 3
      $possible[$i] = true;            //wird am anfang als Primzahl angesehen
    
    //Von 3 wird jetzt bis zur Quadratwurzel von $bis eine Zahl ausgesucht 
    //Nach der Quadratwurzel kehren sich die Zahlenpaare um: 6x5 = 5x6
    for ($i = 3; $i <= bcsqrt($bis, 3); $i=$i+2)  
      if ($possible[$i]==true)                   //Wenn die Zahl eine Prim ist
        for ($j=$i*$i; $j <= $bis; $j=$j+$i)     //werden alle Vielfachen von der
           $possible[$j]=false;                  //Zahl keine Prim sein
        /* bei der zweiten for-schlaufe muss ich erst beim Quadrat beginnen
        Alle kleineren Zahlen sind schon markiert, also: $j=$i*$i
        $i ist die Zahl, $j das Quadrat
        Dann wird zum Quadrat bei jedem schritte die Zahl addiert: $j += $i
        Beispiel ab 5:
           Fünf ist nicht markiert, also ist es eine Prim
             25,30,.. 100 markieren, sind also keine Prim
             Hier sieht man, warum man erst beim Quadrat mit markieren beginnen
             muss: 20 wäre schon von 2 markiert worden, 15 von drei...
         6 ist markiert, also keine Primzahl
         7 ist nicht markiert, markiere 49 ...   */
         
    
    //Zum Schluss noch die Ausgabe
    echo '2 <br />';  //die 2 muss ich zusätzlich ausgeben
    for($i=3; $i <=$bis; $i=$i+2)  //von 3 bis zum ende in 2er schritten
      if($possible[$i]==true)      //wenn es eine prim ist
        echo $i . '<br />';        //diese ausgeben
    ?>


    EDIT: Atkin hat das ganze noch optimiert, aber dann wird kompliziert...

    Beitrag geaendert: 13.5.2007 11:43:28 von nigolaz
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!