Wie finden Sie alle möglichen Werte der vier Variablen, wenn die quadrierte Summe der N?

A^2+B^2+C^2+D^2 = N Gegeben eine ganze Zahl N, drucken Sie alle möglichen Kombinationen von ganzzahligen Werten von ABCD die Lösung der Gleichung.

Ich vermute, wir können es besser als brute-force.

  • Siehe diesem Artikel auf Wikipedia und verwandten Artikeln.
  • Dies wird wahrscheinlich bewirken eine dynamische Programmierung Lösung oder Heuristik.
  • Der Wikipedia-Artikel keine information, wie zum auflisten aller Lösungen für die vier-Quadrat-problem (es in Erster Linie Vorträge über den mathematischen Beweis der damit verbundenen Vermutung). Es tut Verweis auf einen Artikel von Rabin und Shallit, jedoch, dass der Artikel nur beschreibt das finden einer einzigen Lösung, nicht, wie das auflisten aller möglichen Lösungen. darüber hinaus, der Artikel ist nicht online, aber ist ein Kostenpflichtiger download.
  • Deshalb ist es ein Kommentar - einfach für mehr Informationen auf die Eigenschaft der Summe von 4 Quadraten.
  • FWIW, ich habe nachgedacht über diese eine, und ich bin jetzt überzeugt, dass dies geschehen kann in O(N) Zeit, wobei N die gewünschte Summe (sicherlich nicht schlechter als O(N*sqrt(N))). Ich bin mir immer noch nicht sicher, ob das ein guter Zeitpunkt ist, oder nicht...
  • Welche Art von Arbeit fordert dies als eine interview-Frage?!?
  • Seine ein google-interview-Frage.
  • Follow-Up: ich stellte auf dem CS-forum, hier(cs.stackexchange.com/questions/2988/...). Es scheint, dass die theoretische schnellsten diese kann getan werden, ist O(N*Log(Log(N))), und die c# - Methode, die ich gepostet, es scheint sich zu erreichen, dies.

InformationsquelleAutor Usman Ismail | 2012-07-31
Schreibe einen Kommentar