Ergebnis 1 bis 10 von 10

Thema: [GB] Ein Würfel wird 20

  1. #1

    [GB] Ein Würfel wird 20

    Es steht mal wieder ein runder Geburtstag. Unser Neuzugang littlecube hält nicht nur die Frauenquote im Porgrammierforum hoch, sie wird heute auch noch 20! Also Leute, seid brav und verschreckt das Coderweibchen nicht zu sehr

    Wie es die Tradition verlangt, gibt es von mir wieder einen Codefetzen zum Geburtstag. Dieses Mal inklusive ein bisschen Obfuscation.

    Code (C):
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
     
    int main(int argc, char** argv)
    {
        int foo;
        char *blubb;
        char moo[5];
        char *lol = "oAmnJa792jhzauA!";
        foo = strlen(lol);
        blubb = malloc(foo);
     
        for(foo = 0; foo < lol[8] / 3; foo++)
        {
            blubb[foo] = lol[12];
        }
        blubb[lol[0] / 7] = lol[5] - lol[12];
     
        strcpy(moo, "%*i\n");
     
        blubb[13] = lol[11] - blubb[0] / lol[12];
        blubb[6] -= '>' / 2;
        blubb[2] = lol[0] + lol[3] - lol[2];
        blubb[0] -= lol[8] / 2;
        blubb[4] = blubb[2] + 9;
        blubb[3] += lol[0] / 7;
        blubb[7] = moo[2];
        blubb[1] = blubb[10];
        blubb[5] = blubb[6] / 2 - 1;
        blubb[10] = blubb[0] + blubb[5];
        blubb[8] = lol[0] + 3;
        blubb[9] = blubb[8] + 2;
        blubb[11] += blubb[14] / blubb[5];
        blubb[14] = lol[strlen(blubb)];
     
        moo[2] = blubb[8] - (blubb[13] - lol[11]);
     
        printf(moo, blubb[2] - blubb[1], &blubb[0]);
     
        free(blubb);
    }
     

    Geändert von DFYX (07.04.2010 um 03:56 Uhr)

  2. #2
    Alles Gute, Jelle!

  3. #3
    JELENA \o/

    Alles erdenklich Gute zum Geburtstag, Frau Dr. Tessler. *knuddel*
    Du bist eins der tollsten Maedels, die ich kenne, lass dir das gesagt sein.
    Ich hoffe, du feierst heute schoen, laesst dich feiern und reich beschenken.

    Heute an deinem Ehrentag moechte ich dir die besten Wuensche aussprechen: Ich wuensche dir anhaltende Gesundheit, gewogenes Glueck, Zufriedenheit mit dem Erreichten, ewiges Streben nach dem Erreichbaren, Erfuellung der grossen und kleinen Wuensche, grenzenlose Weisheit und soviel Wissen, wie du ertragen kannst. Moegest du in deinem Leben immer eine Muenze mehr in der Tasche haben, als du brauchst, so dass es dir an nichts mangele. Es sei kein Schmerz zu stark, kein Leid zu gross und kein Verlangen zu verzehrend, als dass es dich unweigerlich aus der Bahn werfen koenne. Moegest du in interessanten Zeiten leben, die dich fordern aber nicht verzweifeln lassen und moege dein Leben nie ruhiger sein, als du es ertraegst.

    Und nun hier der kleine Codeschnipsel
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char** argv)  {
      char *Text = "QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"; 
      do {
        for (size_t i=0; i<strlen(Text); ++i) {
          Text[i] = (char) ( (int)' ' + rand() % 95 );
        }
      } while ( strcmp(Text, "Alles Gute zum Geburtstag, Jelle !") );
     printf("%s\n", Text);
     return 0;
    }
    Koennte aber ne Weile dauern, bis der Text angezeigt wird.

    Geändert von Ineluki (07.04.2010 um 17:01 Uhr)

  4. #4
    Zitat Zitat von Ineluki Beitrag anzeigen
    while ( ! strcmp(Text, "Alles Gute zum Geburtstag, Jelle !") )[/code]
    Gehört da nicht noch das "!" weg? ^^" strcmp() liefert doch 0, also logisch false zurück, wenn die beiden Strings gleich sind…

    Ähm, sorry fürs Reinplatzen. XD Dafür auch von mir:
    Code:
    package main
    
    import fmt "fmt"
    
    func main() {
        fmt.Printf("Alles Gute, unbekannterweise! ^^\"\n")
    }

  5. #5
    Das Saeuferaeffchen hat natuerlich recht. Editier.
    In Pascal gibts das selbe Statement, da heisst das nur Repeat ... Until(x) und wartet, bis x true ist.

  6. #6
    Hui, ich fühle mich geehrt

    Vielen Dank ihr lieben, ihr seid toll *knuddel*
    Und keine Sorge, so leicht lass ich mich nicht verschrecken

    Und Lukis Schnipsel hab ich mal vorsichtshalber nicht ausgeführt, bis zum nächsten Geburtstag wäre es vielleicht fertig gewesen... (Mhm, ich könnte mal ausrechnen, wie wahrscheinlich das wäre... Nein, ich glaub das kann ich nicht und dafür bin ich zu müde... aber yeah^^)

    EDIT: Bin ich jetzt eigentlich ein W20? O.o

  7. #7
    Zitat Zitat von littlecube Beitrag anzeigen
    Und Lukis Schnipsel hab ich mal vorsichtshalber nicht ausgeführt, bis zum nächsten Geburtstag wäre es vielleicht fertig gewesen... (Mhm, ich könnte mal ausrechnen, wie wahrscheinlich das wäre... Nein, ich glaub das kann ich nicht und dafür bin ich zu müde... aber yeah^^)
    Wenn man fuer einen einzelnen Test etwa 1ms benoetigen wuerde, wuerde das ganze wohl ca. 5E+51 Millionen Jahre dauern, zumindest wenn man nicht mehrfach das selbe raten duerfte.

    95 Zeichen auf 34 Positionen ...
    95^34 Moeglichkeiten, und nur eine funktioniert ...
    Wahrscheinlichkeit: 1/(95^34) = 5.7200183256796221370745630216289 E -68
    Versuche in 1 Million Jahren:
    1000 (pro sekunde)
    * 60 (sekunden)
    * 60 (minuten)
    * 24 (Stunden)
    * 365.24 (Tage)
    * 1E6 (1 Million Jahre)
    ___________________
    3.1556736 E +16 Versuche (Hey, das ist ja fast pi \o/ )

  8. #8
    Da sieht man einen Tag nicht ins Forum...

    So, mal ganz schlicht:
    Code (Objective-C):
    int main(int argc, char *argv[])
    {
    	NSLog(@"Herzlichen Glückwunsch (nachträglich), Jelle!");
    	return 0;
    }

  9. #9
    Danke, Jeez

    Zum Thema Wahrscheinlichkeit:
    Zitat Zitat von Ineluki Beitrag anzeigen
    Wenn man fuer einen einzelnen Test etwa 1ms benoetigen wuerde, wuerde das ganze wohl ca. 5E+51 Millionen Jahre dauern, zumindest wenn man nicht mehrfach das selbe raten duerfte.

    95 Zeichen auf 34 Positionen ...
    95^34 Moeglichkeiten, und nur eine funktioniert ...
    (...)
    Also, ich hätte das jetzt so gerechnet...
    Die Chance, dass es bei einem Schritt den Satz nicht ergibt ist:

    [(95^34)-1] / [(95^34)]

    Wenn sich die Schleifendurchgängen-Anzahl n erhöht, wird die Chance immer kleiner, dass der Satz zwischendurch nicht dabei war:
    ([(95^34)-1] / [(95^34)] )^n

    Versuche nach 1 Jahr:
    * 1000 (pro Sekunden)
    * 60 (pro Minute)
    * 60 (pro Stunde)
    * 24 (pro Tag)
    * 365 (pro Jahr)
    -----------------
    n = 31536000000

    Demnach wäre die Wahrscheinlichkeit, dass es nach 1 Jahr den richtigen Satz nicht hat:

    ([(95^34)-1] / [(95^34)] ) ^ 31536000000 = 0.999996499

    Die Wahrscheinlichkeit, dass es funktioniert hat liegt bei 3.50119322 × 10-6, also bei 0.00035%.

    Nach einer Million Jahren liegt die Wahrscheinlichkeit übrigens bei 0.969838812, also nahezu bereits 97% Wahrscheinlichkeit.
    Nach 100.000 Jahren liegt die Wahrscheinlichkeit bei 30%.

    Also, ich müsste schon ziemlich alt werden, um das zu erleben, oder einfach nur sehr viel Glück haben

  10. #10
    Dein Ansatz ist natuerlich der richtige.

    Allerdings hab ich eine Maximalabschaetzung fuer den Fall keiner zwei identischen Rateversuche gemacht. Deine ist natuerlich von der Wahrscheinlichkeit her die realistischere, da mein Code mehrfach-identische Resultate zulaesst.

    Ich wuensch dir jedenfalls soviel Glueck, dass du beim starten des Programms auf anhieb die richtige Kombination triffst.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •