Für diese Herausforderung müssen Sie zwei Funktionen, f und g , in die Ganzzahlen implementieren , sodass f f g eine streng abnehmende Funktion ist, während g ∘ f eine streng zunehmende Funktion ist. Mit anderen Worten, wenn Sie zwei ganze Zahlen a <b nehmen , dann gilt f (g (a))> f (g (b)) und g (f (a)) <g (f (b)) . Es gibt keine Einschränkungen für f und g , außer dass sie jeweils eine ganze Zahl einer anderen ganzen Zahl zuordnen müssen.
Bitte geben Sie eine kurze Beschreibung von f und g sowie ein Argument an, warum sie die erforderliche Eigenschaft haben.
Kredit: Diese Herausforderung wurde durch ein Problem im rumänischen Master of Mathematics-Wettbewerb 2011 inspiriert (bei dem das Gleiche gefragt wird, aber die reellen Zahlen anstelle von ganzen Zahlen). Wenn Sie wirklich Spoiler wollen, wissen Sie jetzt, wonach Sie suchen müssen.
Regeln
Das Wort "Funktion" in dieser Herausforderung sollte im mathematischen Sinne der Abbildung einer Ganzzahl auf eine andere verstanden werden: Sie können entweder zwei Programme oder zwei Funktionen schreiben und wie üblich eine der Standardmethoden zum Empfangen von Eingaben und zum Bereitstellen von Ausgaben verwenden. Sie können Zeichenfolgendarstellungen von Ganzzahlen anstelle von tatsächlichen Ganzzahlvariablen verwenden, die Eingabe- und Ausgabetypen sollten jedoch identisch sein, damit die Funktionen zusammengesetzt werden können, ohne dass Typen dazwischen manuell konvertiert werden müssen. Denken Sie daran, dass f und g konzeptionell immer noch Funktionen für ℤ sein müssen, sodass Sie nicht schummeln können, wenn Sie zwei verschiedene Zeichenfolgendarstellungen mit derselben Nummer oder Ähnlichem verwenden.
Denken Sie daran, dass Funktionen möglicherweise nicht benannt sind , solange ihr Name nicht von sich aus oder von einer anderen von Ihnen definierten Funktion benötigt wird. Wenn Sie eine oder beide Funktionen benennen, können Sie davon ausgehen, dass sie im selben Programm vorhanden sind, sodass sie in ihrer Implementierung aufeinander verweisen können (z
def f(x): return -g(x)
. B. in Python).Es gelten die üblichen Überlaufregeln für Ganzzahlen: Ihre Lösung muss in der Lage sein, für beliebig große Ganzzahlen in einer hypothetischen (oder möglicherweise realen) Version Ihrer Sprache zu arbeiten, in der standardmäßig alle Ganzzahlen unbegrenzt sind, Ihr Programm jedoch aufgrund der Implementierung in der Praxis fehlschlägt Ganzzahlen, die so groß sind, werden nicht unterstützt, was die Lösung nicht ungültig macht.
Sie können jede Programmiersprache verwenden , beachten Sie jedoch, dass diese Lücken standardmäßig verboten sind.
Dies ist Code-Golf , also ist Ihre Punktzahl die Summe der Anzahl der Bytes beider Funktionen und der kürzesten gültigen Antwortgewinne.