Brüche falsch reduzieren
In dieser Code-Golf-Herausforderung musst du Brüche finden, die auf die falsche Weise reduziert werden können, aber immer noch die gleiche Anzahl haben.
Hinweis: Das falsche Reduzieren von Brüchen hat hier eine genaue Definition, siehe Details.
Beispiel:
64/16 = 6 4/1 6 = 4/1 = 4
Natürlich können Sie nicht beide 6en anschlagen, aber hier haben Sie immer noch den richtigen Wert. In dieser Herausforderung muss man solche Beispiele finden.
Einzelheiten
Sie müssen eine Funktion / ein Programm schreiben, die / das eine positive Ganzzahl n
als Eingabe akzeptiert und / oder eine Liste / ein Array der Brüche im Format ausgibt / zurückgibt
numerator1,denominator1,numerator2,denominator2,...
Das Programm muss für jede Fraktion herausfinden, a/b
mit a+b=n
und a,b>0
ob es falsch reduziert werden kann . (Es spielt keine Rolle, ob es auf herkömmliche Weise reduziert werden kann oder ob es viele Möglichkeiten für Reduzierungen gibt, es muss nur möglich sein, es auf mindestens eine Weise falsch zu reduzieren .)
Definition des falschen Weges: Ein Bruch kann nur dann falsch reduziert werden , wenn in a und b dieselbe Folge aufeinanderfolgender Ziffern vorkommt und der Wert des Bruches gleich bleibt, wenn Sie die Teilzeichenfolge entfernen.
Beispiel: 1536/353 kann auf 16/3 'reduziert' werden, aber diese beiden Werte sind nicht gleich, sodass Sie diesen Bruch nicht auf die falsche Weise reduzieren können .
Beachten Sie, dass diese Definition des Reduzierens des falschen Wegs auch Brüche einschließen kann, die auf die richtige Weise reduziert werden: Sie 110/10 = 11/1
liegt innerhalb der Definition des Reduzierens des falschen Wegs , obwohl es sich um einen gültigen Schritt handelt.
Wertung
Die geringste Anzahl von Bytes gewinnt. Sie können eine Funktion oder ein Programm schreiben, das eine Ganzzahl akzeptiert und ein Array oder ein Programm zurückgibt, das stdin / stdout verwendet, oder Sie können n als in einer Variablen gespeichert betrachten, und am Ende des Programms muss die Liste in einer anderen Variablen gespeichert werden.
Testfälle
Bitte fügen Sie folgende Testfälle bei (Sagen Sie mir, welche ich hinzufügen soll, ich habe keine Ahnung, wie viele dieser Brüche es gibt / wie viele Beispiele zu erwarten sind)
n=80 (64/16 should be in this list)
n=147 (98/49 should be in this list)
n=500 (294/196 should be in this list) WRONG since 294+196 != 500 Thanks Falko
1010/10 = 101/1 && 1010/10 /= 110/1
n=147
) ist falsch: 49/89 != 4/8
.