Gute Möglichkeit zu lernen, wie man Fragen auf InterviewStreet löst [geschlossen]

10

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.

einfallsreich
quelle
Versteh mich nicht falsch - ich mag diese Art von Fragen sehr (kleine Rätsel für das Wochenende) - aber ich glaube wirklich nicht, dass du mit diesen gute Programme finden wirst - du wirst Mathe-Geeks finden (das könnte gut sein programmig) - und wir alle wissen, dass diese Leute Code erledigen, aber die Person neben ihnen wird ihren Code niemals lesen können :) ... wollen wissen, ob jemand gut ist? Setzen Sie sich und programmieren Sie 2 Stunden lang mit dieser Person und Sie werden viel mehr lernen, als wenn sie Gardner-Rätsel mag
Carsten

Antworten:

9

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
6

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.

tskuzzy
quelle
Das ist eine Verpflichtung. Haben Sie festgestellt, dass es Ihnen bei Ihren allgemeinen Programmierfähigkeiten geholfen hat?
Darren Young
3
Absolut. Ich nahm an der USA Computing Olympiad in der High School teil und stieg von einem Niemand in die Top 20 der USA auf. In Bezug auf die Programmierung in der "realen Welt" kann ich mit größter Zuversicht sagen, dass meine Fähigkeiten erheblich verbessert wurden. Jetzt sage ich nicht, dass jeder rausgehen und das tun sollte, was ich getan habe, aber ich denke, es lohnt sich, einige Zeit damit zu verbringen, Ihre Fähigkeiten zur Problemlösung zu verbessern. Sie können wirklich viel lernen und es ist definitiv auf die Softwareentwicklung anwendbar.
Tskuzzy
0

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.

Löwe b
quelle