Mögliches Duplikat:
Wie passe ich mich an Fragen vor dem Vorstellungsgespräch an?
InterviewStreet ist ein neues Unternehmen, das im Wesentlichen als Filter für Unternehmen fungiert, um Programmierer zu finden, die codieren können. Mein Problem ist, dass meine Mathematik ziemlich schwach ist und ich sie gerne studieren würde, auch wenn sie von Grund auf neu ist, um Fragen wie diese lösen zu können, die auf ihrer Website zu finden sind:
Find the no of positive integral solutions for the equations (1/x) + (1/y) = 1/N! (read 1 by n factorial) Print a single integer which is the no of positive integral solutions modulo 1000007
Bitte posten Sie die Antwort auf diese Frage NICHT, sie stammt direkt aus InterviewStreet und sollte hier nicht veröffentlicht werden. Es ist nicht die Antwort, nach der ich in diesem Thread suche. Was ich stelle, ist eine grundlegendere Frage, die wahrscheinlich von einigen Hackern in der SO-Community beantwortet werden kann.
Wie bereitet man sich auf eine solche Frage vor? Welche Ressourcen stehen mir zur Verfügung, um zu lernen, wie ich diese Art von Problem lösen kann? Wird dies in offenen MIT-Kursunterlagen behandelt? Khan Akademie? Irgendwelche besonderen Bücher? Ich bin mir nicht einmal sicher, wo ich anfangen soll, um das oben genannte Problem zu lösen, und ich möchte erfahren, welche Schritte ich dazu unternehmen kann.
quelle
Antworten:
Oft werden Interviewfragen entwickelt, um Ihre Fähigkeiten zur Problemlösung zu testen, ohne dass Sie Fachwissen benötigen. Aber für Ihre Frage würden einige mathematische Kenntnisse definitiv helfen. Zumindest müssen Sie die Definitionen von 'positivem Integral' und 'Modulo' verstehen. Ein Einführungskurs in der Zahlentheorie könnte nützlich sein, vielleicht ist dies ein von OCW .
Ich würde auch empfehlen Project Euler für die Proben Probleme - es ist eine großartige Möglichkeit , Ihre mathematischen zu entwickeln und Programmierkenntnisse. Wählen Sie eine Sprache und beginnen Sie mit den Übungen.
quelle
Sie können sich nicht auf solche Probleme vorbereiten, indem Sie einfach ein Buch auswendig lernen. Der einzige Weg , um Probleme zu lösen , gut zu sein ist , indem Sie viel und viele Probleme. Ich schlage jedoch vor, ein Buch mit Algorithmen und Datenstrukturen zu erstellen und es durchzulesen. Dies beschleunigt den Prozess erheblich.
Ich erinnere mich, dass ich vor ein paar Jahren einen ganzen Sommer (mehr als 5 Stunden am Tag) damit verbracht habe, diese Art von Problemen nur zum Spaß zu lösen.
Es gibt eine Reihe von Stellen, an denen Sie dies tun können. Projekt Euler ist ein guter Ausgangspunkt. UVa Online Judge hat auch jede Menge Probleme.
quelle
Für dieses spezielle Problem müssen Sie die grundlegende Zahlentheorie kennen, insbesondere Ideen wie das Faktorisieren zusammengesetzter Zahlen, einige Eigenschaften von Primzahlen und das Verständnis relativ primärer Zahlenpaare.
Die anderen Probleme auf der Site erfordern ein Verständnis der Big-O-Notation, einfache Datenstrukturen, grundlegende Algorithmen wie Sortieren und Kombinatorik. Ich habe 3 der 5 Probleme bestanden und bin fast fertig mit meinem 4. und ich habe keine spezifischen Kenntnisse aus meinem ersten Jahr des CS-Unterrichts am College verwendet. Das sind jedoch schwierige Probleme. Einige von ihnen erfordern überraschend viel mathematische Intuition.
Um sich auf solche Dinge vorzubereiten, muss man gut in der Lösung mathematischer Probleme sein. Schauen Sie in die Olympiade (wenn Sie in der High School sind) oder Putnam Prüfung (wenn Sie in der Schule sind) und machen Sie die Übungsprobleme, die Sie finden. Sie sind hart, aber irgendwann wirst du besser darin.
Führen Sie auch nicht zuerst die 30-Punkte-Frage - Quadrantenabfragen - aus. Es ist bei weitem das Schwierigste.
quelle