Willkommen zum ersten meiner geplanten Reihe regelmäßiger JMP-Herausforderungen! Größtenteils konzentrieren sich diese Herausforderungen auf die JMP Scripting Language (JSL), aber gelegentlich schleiche ich etwas ein, das ohne Skripting erledigt werden kann.
Ich hoffe, Ihnen am oder um den Ersten eines jeden Monats eine Aufgabe anbieten zu können, die Ihre JMP-Fähigkeiten auf die Probe stellt. Bei jeder Herausforderung geht es darum, bestimmte Programmier- und datenorientierte Fähigkeiten hervorzuheben, die auf JMP anwendbar sind. Ich möchte jeden, unabhängig von seinem Leistungsniveau, ermutigen, es auszuprobieren. Im Laufe meiner Karriere habe ich mehr gelernt, indem ich versucht habe, das zu tun, was undurchdringlich schien und über meine Fähigkeiten hinausging, eine Lösung zu finden und dann einen besseren Weg zu lernen (oder zu entdecken), Dinge zu tun.
In jedem neuen Beitrag rufe ich die besten Teilnehmer der vorherigen Herausforderung hervor und teile ihre Lösungen zusammen mit anderen interessanten Lösungen. Ich werde darüber sprechen, was meiner Meinung nach die vorherige Herausforderung herausfordernd gemacht hat, und versuchen, ein paar Weisheiten zu vermitteln.
Im Laufe der Zeit werde ich die Top-Performer im Auge behalten. Die Herausforderung steht jedem offen, aber ich werde die Mitarbeitereinträge vom Rest getrennt halten. Wie Sie vielleicht erwarten, haben wir bei JMP ein paar Klingeltöne.
Die Regeln sind einfach:
- Alles muss vollständig erledigt sein JMP , ohne eine Anwendung außerhalb von JMP wie SAS, R oder Python aufzurufen oder externe Quellen für Zusatzinformationen zu verwenden.
- Ein Skript muss seine Aufgabe in einer angemessenen Zeit abschließen, wie in der Herausforderung angegeben.
- Es muss auf Catalina oder Windows 10 laufen.
- Während ich lieber benutze JMP 15 Ich bin bereit, darüber nachzudenken, es auf JMP 14 zu testen. Wenn Sie dies bevorzugen, müssen Sie es mir in Ihrem Eintrag mitteilen.
- Veröffentlichen Sie Ihre Einträge im Blog. Ich muss Ihren endgültigen Eintrag bis 23:59 Uhr Eastern Time am Tag der Frist erhalten. Ich werde nur einen Eintrag pro Person berücksichtigen.
Jeden Monat werden Punkte an die Skripte mit der besten Leistung vergeben, basierend auf den für die Herausforderung geeigneten Kriterien. Während die Herausforderung läuft, werde ich den Kommentarbereich moderieren, um zu verhindern, dass Hinweise, Hinweise, Einsendungen usw. versehentlich an die Öffentlichkeit gelangen. Ich gebe Ihnen Bescheid, sobald ich Ihren Eintrag erhalten habe.
JSL-Herausforderung 1
Ich liebe ein gutes Worträtsel. Diese Herausforderung ist von Spelling Bee in der New York Times inspiriert. Darin müssen Sie Wörter aus einer Liste von sieben Buchstaben bilden, mit der Bedingung, dass immer einer der Buchstaben verwendet wird. Die anderen Buchstaben können einmal, mehrmals oder gar nicht verwendet werden. Ich ändere die Bedingungen, um die Sache etwas schwieriger zu machen.
Finden Sie anhand von sieben Buchstaben:
- Das längste Wort, das alle sieben Buchstaben und nur diese sieben Buchstaben verwendet. Buchstaben dürfen mehrfach verwendet werden.
- Das längste Wort, das alle sieben Buchstaben und alle anderen Buchstaben enthält.
- Das längste Wort mit allen sieben Buchstaben und allen anderen Buchstaben, bei denen kein Buchstabe aus der Siebenergruppe mehr als einmal verwendet wird.
- Das längste Wort, in dem 5 der 7 Buchstaben vorkommen. Jeder Buchstabe, einschließlich derjenigen außerhalb der 7, kann einmal oder mehrmals vorkommen, mit Ausnahme der beiden nicht verwendeten Buchstaben aus der Liste der 7, die möglicherweise überhaupt nicht erscheinen.
Für alle vier Elemente gibt es möglicherweise keine Wörter, die den Kriterien entsprechen, oder mehrere Wörter. Skripte müssen eine Liste von sieben kleingeschriebenen alphabetischen Zeichenketten (az) akzeptieren, die in einer globalen Variablen mit dem Namen gespeichert werden LetterSetList . Wenn das erste Element in der Liste beispielsweise „abcdefl“ lautet, lauten die Antworten wie folgt:
- „verunstaltbar“
- „Unbehagen“
- „fibrochondrostal“
- „formaldehydesulfoxylate“ und „scientificophilosophical“
Alle Skripte werden mit denselben drei Sätzen aus sieben Buchstaben getestet. Alle Wörter werden dem unten veröffentlichten Wörterbuch entnommen. Bitte greifen Sie bei der Ausführung Ihres Skripts als JMP-Datentabelle darauf zu. Schreiben Sie alle Wörter in das Protokoll. Stellen Sie sicher, dass Sie bei der Ausgabe auch die Artikelnummer angeben. Sie haben insgesamt ein Zeitlimit von fünf Minuten. Die Beiträge müssen bis Mittwoch, 15. April, 23:59 Uhr Eastern Time eingegangen sein.
Wertung: Zwei Punkte für jede richtige Lösung. Zwei zusätzliche Punkte für die Lösung aller vier. Die drei schnellsten Skripte (Gesamtzeit für die richtige Beantwortung aller vier Aufgaben) erhalten 6, 3 und 1 Punkt. Zwei Punkte für jedes Skript, das die richtige Antwort liefern kann, die halb so groß oder kleiner als die zweitkürzeste der drei schnellsten Lösungen ist (Gesamtzahl der Nicht-Leerzeichen und ohne Kommentare). Drei Punkte, wenn Ihr Skript genauso schnell oder schneller läuft als das von einem Mitarbeiter eingereichte Skript.
Viel Glück!
Eine Erinnerung für diejenigen, die erwägen, ein Skript einzureichen, die dies jedoch noch nicht getan haben. Du hast etwas weniger als eine Woche Zeit. Einsendeschluss ist Mittwoch, der 15. April, 23:59 Uhr Eastern Time.
@MathStatChem Es ist wahrscheinlich am sichersten, mir das Skript per Privatnachricht zu senden. Ich moderiere den Blog auch, sodass Sie hier sogar posten können und ich den Beitrag erst nach dem 15. genehmigen kann.
Wie sollen wir unsere Skripte veröffentlichen?Nur als Text in einem Kommentar hier?
@MathStatChem zu 2. Das Wort muss alle sieben Buchstaben mindestens einmal enthalten. Es kann ein- oder mehrmals einen beliebigen anderen Buchstaben enthalten.
Für Regel 2 sollte es lauten: „Verwende alle sieben Buchstaben.“ einmal und irgendwelche anderen Buchstaben?“ oder einfach nur, dass das Wort alle sieben Buchstaben enthalten muss.
Das ist richtig. Alle Buchstaben in einem Siebener-Set werden unterschiedlich sein.
Noch eine Frage: für die Artikel in LetterSetList, können wir davon ausgehen, dass es keine doppelten Buchstaben geben wird, also keine Einträge wie „aabbcc“, sondern nur Einträge mit einer Buchstabenfolge, die nur einmal in der Zeichenfolge vorkommt.
@MathStatChem , Danke für die Frage. So oder so würde es funktionieren. Die Wörterbuchtabelle wird in JMP geöffnet und ist die aktuelle Datentabelle. Wenn Sie den Dateiverweisansatz verwenden, gehen Sie davon aus, dass die Tabelle im selben Verzeichnis wie Ihr Skript gespeichert wird. Vermeiden Sie die Verwendung von Benutzerabfragefunktionen (wie „Pick File()“) und öffnen Sie es direkt von seinem Pfadspeicherort aus.
Wenn Sie sagen: „Bitte greifen Sie als JMP-Datentabelle darauf zu“ (die Wortliste), wie sollen wir dies tun?
Aktuelle Datentabelle verwenden()?Oder eine bestimmte Datei-/Pfadreferenz?
Schöne Herausforderung!
Altes Rätsel: Ein 10-Buchstaben-Wort, das sich nur mit den Tasten in der oberen Reihe einer Schreibmaschine buchstabieren lässt?