lovecalc

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • lovecalc

    hey zusammen mal wieder
    frohe ostern wünsch ich erstmal...

    ich hab mal wieder die eine oder andere idee gehabt wobei ich mal wieder auf dem schlauch stehe.

    wie der titel schon sagt hätt ich gern sowas wie ein liebesrechner.

    dabei würd ich gern den vornamen in einen zahlenwert wandeln.
    das gilt für zwei personen. diese beiden zahlenwerte sollen zusammengefügt werden und dann soll daraus eine prozentangabe entstehen.

    jetzt hab ich 2 probleme:

    mit welcher funktion schaff ich es aus einem string einen zahlenwert zu machen.
    die zahlen addieren wird ja ned so schwer sein..und wie bekomm ich es dann so hin, das aus diesen beiden eine prozentzahl entsteht.
    sprich 0 - 100.
    ich weiß leider nicht wonach ich mich da richten könnte..vielleicht habt ihr eine idee oder sogar was ganz anderes für mich?
    ins php handbuch schon geschaut und die suche auch genutzt..
    aber um ehrlich zu sein weiß ich nicht genau wonach ich suchen muss.
    mit time() hat das keinen sinn, weil das den wert halt immer wieder verändern würde.. daher die sache mit dem string.

    google brachte mir ned mal ein ergbnis für eine gute beispieldatei wo ich mal abluchsen hätte können :/

    wäre klasse ..danke euch schonmal

    viele grüße

  • #2
    frohe ostern

    ich habe da prinzipiell zwei gedanken:
    string->int
    klingt irgendwie nach intval oder? wäre aber eine denkbar blöde lösung!

    nun, das ganze würde ich so angehen: als erstes per strlength länger ermitteln, dann jeweils einen char isolieren, substr, den rest in eine tmp variablen speichern, dann den ersten char mittels ord in ascii umrechnen. und das ganze so lange, bis du alle chars umgerechnet hast. dann fügst du die werte zusammen und hast deine zahl

    an der stelle ord, kannst du natürlich eine function zwischenschalten, nur ord ist ja für lovecalc etwas einfach, muss ja nach etwas aussehen!
    eventuell kannst du mir crc32 arbeiten und das dann in undendlich unübersichtlichen operationen verändern.

    zum prozentrechnen: in diesme falle brauchst du einen absoluten wert, das sagt die mathematik: xx% von etwas.

    ich hoffe, das hilft dir etwas. falls du mit dem php probleme hast, sag besheid, ich hefe gerne

    Kommentar


    • #3
      hey danke erstmal für die rasche antwort

      ich habs mal mit intval probiert. ich glaub ich mach da was falsch..ich bekomme da generell immer 0 raus.
      mal zu deinem beispiel. also, ich hab noch nicht sooo viel erfahrung mit php, darum müsstest dich vielleicht etwas klarer ausdrücken *gg..

      gibts vielleicht eine methode die ganze zeichenkette in eine zahl umzuwandeln
      ohne jeden einzelnen auseinanderzunehmen? ich wüsste sonst nicht wie ich das angehen sollte :/

      ja genau, und dann ist da das problem das ich ja den prozentwert von etwas ermitteln will.. aber was? von 100% ?
      hm..brauche wohl doch noch etwas mehr hilfe

      danke dir schonmal

      liebe grüße

      Kommentar


      • #4
        ok, kein problem.
        sagt ja, dass intval etwas blöd sei
        wenn du beispielsweise $foo = 11c; hast, dann ist das vertretbar.

        ich habe eine ähnliche funktion einmal gesucht, um strings in int zu verwandeln. allerdings nicht wirklich fündig geworden, deshalb habe ich das ganze mit substr gemacht.

        als erstes ermittelst du deinen stringlänge mittels $var1 = strlen();
        dann setzt du eine variable (bsp $var2) auf $var2 = $var1 - 1; $after ist nun 0.
        bei hallo wäre das jetzt also 4 für $var2: nun nur noch den kehrwert von $var2, sprich -4.
        jetzt nimmst du deinen substring von deinem string, sprich so

        substr('hallo',$after, $var2 ); ->substr('hallo', 0, -4)
        das gibt die a zurück. als nächstes beide variablen (after, var2) um eins erhöhen und das ganze so lange, bis der string durchlaufen ist.

        andere möglichkeit wäre da sganze mit (int)
        sähe so aus:
        $int = (int)$string; //type cast

        hier noch einige links:
        PHP: substr - Manual
        PHP: ord - Manual
        PHP: strlen - Manual

        falls noch hilfe benötigt wird, sag bescheid!

        Kommentar


        • #5
          okay, so weit bin ich nun schonmal
          PHP-Code:
          $name "hallo";
          $name2 "test";

          $str strlen($name);

          $var1 $str;

          $str strlen($name2);

          $var2 $str
          jetzt hab ich die zeichenlängen der beiden namen..

          das hier versteh ich gerade allerdings nicht..

          ich soll var2 auf var2 setzen? dann den wert von var1 auf var2 setzen und var1 subtrahieren mit 1? versteh ich ned...

          ---
          dann setzt du eine variable (bsp $var2) auf $var2 = $var1 - 1; $after ist nun 0.
          ---

          Kommentar


          • #6
            entschuldige mich, war gestern abend etwas länger
            ich hab das mit dem kerhwert etwas zu umständlich gedacht, geht viel einfacher.
            folgendes programm gibt die ascii werte eines string aus.

            PHP-Code:
            $string 'hallo'// der string, den man lesen will
            $var1 0//brauchen wir später
            $var2 strlen($string);
            $values =array(); //hier speichern wir ascii werte für $string


            while($var1<$var2){ //das ist die bedingung
                
            $val ord($string[$var1]); //hier kommt des ascii wert des aktuellen chars heraus
                
            echo $val."\n"//hier geben wir das aus, geht natürlich in einem schritt
                
            array_push($values$val); //hier schreiben wir das in das vorher definierte array
                
            $var1++; //hier inkrementiere wir das, um nicht den selben char zu lesen
            }
            // das ganze steht nun im array, das bei 0 zu lesen beginnt, deshalb $var = 0; am anfang
            // das array kannst du nun mit einer foreach schleife durchgehen und jeweils zu einem wert, den nächsten aus dem array addieren.
            // dann hast du den gesamten string als ascii wert
            //willst du diesen "algorithmus" verändern, dann musst du vor array push ansetzen oder nach der foreach schleife, die dir deinen absolutwert errechnet 
            Zuletzt geändert von svr; 04.04.2010, 16:41.

            Kommentar


            • #7
              Du hast doch eigentlich ein Konzeptionelles Problem, dass du nichtmal den algorithmus kennst, den du verwenden willst.

              also, erstmal nen Algorithmus ausdenken (das versucht svr gerade für dich) und dann kommt die Implementierung. So lange es nichts zu implementieren gibt, verschiebe ich es mal nach OT.

              Kommentar


              • #8
                exakt
                das sollte dir zuerst klar werden. wie genau du die werte errechnen willst!

                hab mir mal gedanken gemacht: man könnte anhand des wertes verschiedene divisionsoperationen (fibonacci zahlen) durchführen, sodass man auf einen wert >100 kommt. dann kann man nämlich einfach sagen->wert->prozentwert

                bei fragen, melde dich!

                Kommentar


                • #9
                  @tobi..du sagst es...hab ich doch schon von anfang an aufn tisch gelegt


                  danke, ich glaube der ansatz ist ganz gut.
                  hab das mal eben ausprobiert aber muss gestehn das ich das erstmal alles richtig begreifen musste..mein problem ist halt das ich absolut nicht weiter weiß, selbst wenn ich nun die ascii werte habe und die anschließend mit foreach zusammenrechne.

                  da komm ich auf nen wert von 528 bei dem wort hallo um mal dabei zu bleiben...was soll ich mit dem machen? *kopf@tisch..

                  habt ihr alle studiert oder so ? *lach.. fibonacci..noch nie zuvor gehört..hab mich aber eben mal schlau gemacht..so isses ned aber wenn ich das nun in meinem script anwenden wollte *weia..nomma kopf@tisch

                  gibts nicht was einfaches für doofe sozusagen? *gg bin doch noch ned so lang in der matherie *snief

                  ok, also angenommen ich habe nun diese 528..der wert fällt ja sehr unterschiedlich aus..je nach länge und ascii wert des namens dementsprechend..
                  nun soll ich diesen wert als prozentwert verwenden..also 52,8% ?
                  dann fällt die wahrscheinlichkeit ne quote von 100% zu bekommen sehr gering aus , oder hab ich das schon wieder falsch verstanden?

                  Kommentar


                  • #10
                    Das hat nichts mit studiert oder ähnliches zu tun. solche Rechner gibt es zu Hauf im Netz. Und Jamba kanns doch auch...

                    Wenn ich keinen Plan hab, was ich will, würd ich mich erstmal fragen, warum ich "das" dann überhaupt machen will. Wie gesagt, bist sicher nicht der erste, der so etwas anbietet und da du nun wirklich keinen Plan (und damit meine ich nicht die Programmierung) hast, wird dein Ergebnis/Angebot zwangsläufig schlechter ausfallen.

                    Also, was soll der Aufwand? Genieß die Freizeit.

                    Kommentar


                    • #11
                      jaja, hast ja recht mensch..sitze doch schon aufm arsch und lerne und probiere und mache und tute usw..bin halt komisch..manchma brauch ichn arschvoll ..nicht in diesem sinne aber ma nen kopf@tisch für nen denkanstoß

                      Kommentar


                      • #12
                        ich bin immer froh, wenn mir jemand hilft, desegen helfe ich dir auch
                        wenn du fragen hast, dann frag

                        habe dir im "quelltext-chen" viele bunte kommentare geschrieben, das müsste klar sein. sind nur standartfunktionen. ord, strlen,...

                        nun, was du mit den ascii werten machst? das ist dein problem, die methode über ascii ist nur eine von sicher vielen möglichkeiten. so habe ich es damals gelöst. du kannst auch den type cast machen, du kannst aber auch jedem char einen (hex/okta-dezimalen) wrt zuordnen, sprich a wird zu 234, b zu 23 usw....
                        da ist deine kreativität grenzenlos.

                        fibonacci, nunja, du kannst auch primzahlen verwenden, du kannst potenzen verwenden, du kannst ausnahmen für gerade zahlen einbauen, du kannst alles tun, was dir spass macht.
                        bei der programmierung helfe ich dir natürlich gerne

                        Kommentar


                        • #13
                          hey, das ist aber nett von dir danke

                          aber ich habe mir gestern nochmal überlegt ob ich nicht etwas viel simpleres
                          nehme. Ich rede von wahrheitswerten. also da es sich ja hierbei um eine community handelt wäre das vielleicht sinnvoller..so wie z.b zwei profile abgleichen, interessen unter anderem, dann gewisse punkte vergeben ob der user schon in der freundesliste ist oder nicht..solche sachen halt. dann wie regelmäßig miteinander geschrieben wird usw.. ich glaube das ist ne sache die sich dann vielleicht doch mehr rentiert als son oller zahlengenerator. obwohl mich die matherie an sich natürlich brennend interessiert.
                          mist...mal sehen

                          Kommentar


                          • #14
                            Brutal und einfach:

                            PHP-Code:
                            ///
                            /// return STR() similarity in percent
                            function lovetest_nameletter($name1$name2) {
                                
                            // der Rückgabewert ist eine Integerzahl
                                // den (praktischeren) Prozentwert findet man in $percent
                                
                            similar_text(
                                    
                            strtolower($name1),
                                    
                            strtolower($name2), 
                                    
                            $percent
                                
                            );
                                return 
                            sprintf('%0.02f'$percent);

                            Ich vermute, der Jamba-Name-Love-Tester ist auch nicht komplizierter aufgebaut.

                            Die Funktion similar_text() vergleicht zwei Zeichenketten auf ihre "Ähnlichkeit". Eine genauere Erläuterung findest du im PHP-Handbuch.
                            Zuletzt geändert von fireweasel; 07.05.2010, 19:39.
                            Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                            Kommentar


                            • #15
                              naja, ich hatte da auch nochmal eins gefunden:

                              PHP-Code:
                              class lovecalc {
                                  
                              /**
                                  * @return lovecalc
                                  * @param string $firstname
                                  * @param string $secondname
                                  * @desc Konstructor
                                  */
                                  
                              function lovecalc ($firstname$secondname) {
                                      
                              $this->lovename strtolower(preg_replace("/ /","",strip_tags(trim($firstname.$secondname))));
                                      
                              $alp count_chars($this->lovename);
                                      for(
                              $i=97;$i<=122;$i++){
                                          if(
                              $alp[$i]!=false){
                                              
                              $anz strlen($alp[$i]);
                                              if (
                              $anz<2)
                                              { 
                                              
                              $calc[] = $alp[$i]; 
                                              }
                                              else
                                              { 
                                              for(
                              $a=0;$a<$anz;$a++)
                                              { 
                              $calc[] = substr($alp[$i],$a,1); }
                                              }
                                          }
                                      }
                                      
                                      while ((
                              $anzletter count($calc))>2) {
                                          
                              $lettermitte ceil($anzletter/2);
                                          for(
                              $i=0;$i<$lettermitte;$i++)
                                          {
                                              
                              // Just a little bit SHIFT :D
                                              
                              $sum array_shift($calc)+array_shift($calc);
                                              
                              $anz strlen($sum);
                                              if (
                              $anz<2)
                                              {
                                              
                              $calcmore[] = $sum;
                                              }
                                                  
                                              else
                                              { 
                                              for(
                              $a=0;$a<$anz;$a++){ $calcmore[] = substr($sum,$a,1);
                                              } 
                                            }
                                          }
                                          
                              $anzc count($calcmore);
                                          
                                          for(
                              $b=0;$b<$anzc;$b++)
                                          { 
                                          
                              $calc[] = $calcmore[$b]; 
                                          }
                                          
                                          
                              array_splice($calcmore,0);
                                      }
                                      
                                      
                              $this->lovestat $calc[0].$calc[1];
                                  }
                                  
                              /**
                                  * @return int
                                  * @desc Show result
                                  */
                                  
                              function showlove () {
                                      return 
                              "$this->lovestat";
                                  }


                              $name1 "karsten";
                              $name2 "mareike";

                              $my_love = new lovecalc($name1,$name2);// New instance
                              echo $my_love->showlove(); // Show 
                              aber ich mach das dann nun doch auf meiner zuletzt beschriebenen art und weise..dann kann wenigstens behauptet werden das an der berechnung was dran ist anstatt solcher werte..kommt denk ich mal besser

                              Kommentar

                              Lädt...
                              X