suchen
HeimBackend-EntwicklungPython-TutorialEine poetische Herausforderung!?

Eine poetische Herausforderung!?

Sep 18, 2024 pm 05:41 PM

6. September 2024: Bevor wir mit der Diskussion des Problems selbst beginnen, werfen wir einen Blick auf die Hintergrundgeschichte. Eine Herausforderung, eine offene Mathematik-Herausforderung in einem Buch.
Ein altes Buch aus dem Jahr 1984 in der Bibliothek, dessen Namen ich vergessen habe, aber im Abschnitt „Mehr zu lesen …“ habe ich ein Bild von einem sehr faszinierenden Problem erhalten.
Ein, äh, poetisches Rätsel ... Ja, Sie haben es richtig gehört, ein Problem der Mathematik, das in Form eines altenglischen Gedichts geschrieben ist.
Seit meiner High School bin ich überhaupt kein Fan von Gedichten mehr, aber dieses hier hat meine Aufmerksamkeit erregt. Als ich es las, hatte ich das Gefühl, etwas verstanden zu haben, aber ich habe es nicht vollständig verstanden. Mehr als sechs Stunden damit verbringen, ein Rätsel aus einer Fabel zu verstehen, von Drachen und was auch immer. Aber eines ist mir aufgefallen: die Edelsteine. Damit Sie es vollständig verstehen, finden Sie hier das Gedicht:

**In den endlosen, wundersamen Ländern von Zopraria, wo die Sterne gelassen summen,

Und uralte Drachen bewachen den Himmel, wo Zeit und Gezeiten eins sind,

Ein weiser alter Weiser lebte ruhig, dessen Wissen alle Zeiten umspannte,

Dessen Hände könnten durch die Fäden der Magie weben, wie Dichter Reime basteln.

Eines Tages, aus den höchsten Höhen des Himmels, auf Flügeln aus Feuer und Gold,

Ein Geschenk, das dem Weisen zuteil wurde, wie Mythen und Legenden erzählen:

Ein riesiger Schatz – strahlende Edelsteine, wie Fragmente der Sterne,

Dennoch an die eigene Prophezeiung des Schicksals gebunden, mit Regeln, die so alt wie der Mars sind.

Der Himmel flüsterte zu ihm herab, eine sanfte, aber klare Botschaft:

„Teilen Sie diese leuchtenden Edelsteine ​​mit sorgfältigem Herz und Gehör in zwei Teile.

Lassen Sie beide von Ihnen gefertigten Gefäße ein nahezu gemeinsames Gewicht tragen,

Diese Harmonie zwischen ihnen herrscht in einem hellen und gerechten Gleichgewicht.

Aber höre uns, Weiser, wenn die makellose Übereinstimmung außerhalb deines Wissens verloren geht,

Verzweifeln Sie nicht bei Ihrer Suche, denn Ihre Reise soll noch nicht enden.

Denn selbst wenn das Gleichgewicht kippt, kann die Verschiebung doch geringfügig sein,

Der Himmel wird immer noch zu dir lächeln und der Segen wird dir freien Lauf lassen.“

Der Weise begann mit mutigem und weisem Herzen seine heilige Prüfung

Gefäße herzustellen, die dem gleichen ähneln, und den Sternen sein Bestes zu geben.

Die Drachen kreisten hoch oben, während die Engel im Flug innehielten,

Denn in dieser Aufgabe des Gleichgewichts liegt eine Wahrheit, so rein wie Licht.

Die Edelsteine, wie Geheimnisse aus der Vergangenheit, bevor sich der Weise wandte,

Mit jeder Entscheidung nahm das Schicksal Gestalt an und die Herzen begannen zu brennen.

Obwohl die vor uns liegende Arbeit entmutigend war, bewunderten die Stars sie trotzdem

Der Weise, der mit ruhiger Hand versuchte, das kosmische Feuer auszugleichen.

Und wie die Geschichte unter diesem endlosen Himmel ihr Ende erreichte

Ist nur denen bekannt, die suchen und es wagen, den Blick zu heben.

In den grenzenlosen Reichen von Zopraria, wo die Geschichten der alten Zeit noch existieren,

Manche sagen, der Weise denke immer noch darüber nach, sein Herz und sein Geist seien rein.

Denn in den stillen Himmeln liegt ein feines und seltenes Gleichgewicht,

Eine Harmonie, die nur diejenigen mit ruhigen Händen teilen können.**

Das ist das Gedicht, es scheint seltsam, oder? Und was macht es in einem Mathematikbuch? Dies ist kein neues Puzzle, ein Puzzle aus dem alten 17. Jahrhundert, geschrieben irgendwo im heutigen Westminster.
Nichtsdestotrotz ist die KI unser guter Freund, richtig, ich habe sie gefragt, was sie geantwortet hat, war seltsam und sieht aus, als würde selbst sie überhaupt nichts verstehen.

A Poetic Challenge !?
Es dachte, ich hätte es geschaffen, was aber nicht der Fall war. Aber was ist mit GPT-4? Lasst uns fragen, ob es einen Scheiß weiß. Es wurde mein Englischlehrer.

A Poetic Challenge !?

A Poetic Challenge !?

Okay, ich muss es selbst entschlüsseln. Lass es uns versuchen.

9. September 2024: „Teilen Sie diese leuchtenden Edelsteine ​​mit sorgfältigem Herz und Gehör in zwei Teile.

Lassen Sie beide von Ihnen gefertigten Gefäße ein nahezu gemeinsames Gewicht tragen,

Diese Harmonie zwischen ihnen herrscht in einem hellen und gerechten Gleichgewicht.

Aber höre uns, Weiser, wenn die makellose Übereinstimmung außerhalb deines Wissens verloren geht,

Verzweifeln Sie nicht bei Ihrer Suche, denn Ihre Reise soll noch nicht enden.

Denn selbst wenn das Gleichgewicht kippt, kann die Verschiebung doch geringfügig sein,

Der Himmel wird immer noch zu dir lächeln und der Segen wird dir freien Lauf lassen.“

Das ist der Hauptteil der Geschichte und lasst uns ihn entschlüsseln.
Nach einigem Brainstorming, sorry, nachdem ich mich mehr als drei Tage am Stück gequält habe, bekam ich eine Ahnung.
Edelsteine ​​können Zahlen sein, wie es heißt „mit sorgfältigem Herz und aufmerksamem Ohr“.
Gefäße mögen Mengen sein, aber das Konzept der Mengen wurde bis dahin noch nicht entdeckt, also kann es sein, dass ich mich irre.
Der obige Auszug könnte bedeuten, dass es sich um zwei Mengen gleicher Anzahl von Elementen handelt oder dass die Summe der Zahlen in der Menge gleich ist. Und wenn die Summe nicht gleich ist, wird möglicherweise die nächstgelegene angezeigt.

15. September 2024: Nach einigen komplexeren Überlegungen und der Veröffentlichung vieler ergänzender Artikel. Ich denke schon, vielleicht habe ich in diesem Gedicht den besten Gedanken von mir gefunden.
Obwohl dieses Gedicht so alt ist, konnte ich keine andere Lösung für dieses Gedicht finden. Aber ich habe die Fragen so formuliert, dass jeder sie verstehen kann, auch ich.

Die Herausforderung

Aus der Perspektive von C.S. würde ich das zuerst in Form von C.S. und später in Mathematik machen.

Wir erhalten eine Liste mit ganzen Zahlen. Unsere Aufgabe besteht darin, die Liste so in zwei Unterlisten aufzuteilen, dass die absolute Differenz ihrer Summen minimiert wird. Wenn eine perfekte Aufteilung vorliegt, müssen wir die beiden Listen zurückgeben. Andernfalls werden die beiden Listen zurückgegeben, bei denen die Summendifferenz am kleinstmöglichen ist.

Beispiel:

Input: [3, 1, 4, 2, 2]
Output: ([2, 4], [3, 1, 2])

In diesem Beispiel ergibt die Aufteilung der Liste in [3, 4] und [1, 2, 2] Summen von 7 und 5, und die absolute Differenz wird auf 2 minimiert.

Codierung

Also fangen wir mit dem Codieren an.
16. September 2024:

from itertools import combinations

def minimize_difference(lst):
    total_sum = sum(lst)
    n = len(lst)

    # Generate all possible subsets
    best_diff = float('inf')
    best_split = ([], [])

    for i in range(1, n//2 + 1):
        for subset in combinations(lst, i):
            subset_sum = sum(subset)
            other_sum = total_sum - subset_sum

            diff = abs(subset_sum - other_sum)

            if diff 



<p>Die Tatsache, dass der Code besser funktioniert als mein Gehirn, ist einfach erstaunlich.</p>

<h3>
  
  
  <strong>Code-Erklärung</strong>
</h3>

<p>Das Problem, eine Liste so in zwei Unterlisten aufzuteilen, dass die absolute Differenz zwischen ihren Summen minimiert wird, ergibt sich aus einer faszinierenden mathematischen Herausforderung. Lassen Sie uns aufschlüsseln, wie der bereitgestellte Python-Code dieses Problem behebt.</p>

<ol>
<li><p><strong>Das Problem verstehen:</strong><br>
Das Ziel besteht darin, aus der gegebenen Liste zwei Unterlisten zu finden, deren Summe möglichst nahe beieinander liegt. Wenn eine perfekte Aufteilung vorliegt (wobei die Summen beider Unterlisten gleich sind), geben wir die beiden Unterlisten zurück. Andernfalls geben wir die Aufteilung zurück, bei der die Differenz zwischen den beiden Summen am kleinsten ist.</p></li>
<li><p><strong>Codestruktur:</strong></p></li>
</ol>

<p>Der Kern des Codes besteht darin, alle möglichen Kombinationen von Elementen aus der Liste zu generieren, um eine der Unterlisten zu bilden. Sobald eine Unterliste ausgewählt ist, wird die andere Unterliste automatisch aus den verbleibenden Elementen gebildet. Dann vergleichen wir ihre Summen, um die bestmögliche Aufteilung mit der minimalen Differenz zu finden.</p>

<ol>
<li><strong>Schlüsselfunktionen und Konzepte:</strong></li>
</ol>

  • combinations(lst, i): Dadurch werden alle möglichen Kombinationen der Länge i aus der Liste generiert. Für jede Teilmenge simuliert es eine der Unterlisten, während die übrigen Elemente die andere Unterliste bilden.

  • total_sum = sum(lst): Dies berechnet die Gesamtsumme der Liste. Es wird verwendet, um die Summe der anderen Unterliste einfach zu ermitteln, indem die Summe der aktuellen Unterliste von der Gesamtsumme subtrahiert wird.

  • best_diff = float('inf'): Wir initialisieren die Variable best_diff mit einer großen Zahl (unendlich), um den kleinsten bisher gefundenen Unterschied im Auge zu behalten. Während wir jede mögliche Aufteilung durchgehen, aktualisieren wir diesen Wert, wenn wir einen kleineren Unterschied feststellen.

  • Die beste Aufteilung finden: Für jede generierte Teilmenge berechnet der Code die Differenz zwischen den Summen der beiden Teillisten. Wenn die aktuelle Differenz kleiner als best_diff ist, wird die Aufteilung aktualisiert.

  1. Leistungsaspekte:
    Der Code verwendet die Kombinationsfunktion aus der itertools-Bibliothek, um Teilmengen unterschiedlicher Länge zu untersuchen. Während dieser Ansatz für relativ kleine Listen gut funktioniert, ist er für größere Listen aufgrund des exponentiellen Wachstums möglicher Teilmengen möglicherweise nicht optimal. Für größere Eingaben könnten effizientere Algorithmen wie dynamische Programmierung in Betracht gezogen werden.

  2. Beispielausgabe:

Im bereitgestellten Beispiel:

   lst = [3, 1, 4, 2, 2]
   result = minimize_difference(lst)
   print("Split lists:", result)

Die Funktion teilt die Liste in [2, 4] und [3, 1, 2] auf, was zu Summen von 6 bzw. 6 und einer minimalen Differenz von 0 führt, was in diesem Fall die optimale Lösung ist.

  1. Warum es gut funktioniert: Durch die Untersuchung aller möglichen Teilmengen und die Berechnung ihrer jeweiligen Differenzen stellt der Algorithmus sicher, dass wir die Aufteilung mit der kleinstmöglichen Summendifferenz finden. Dieser Brute-Force-Ansatz ist intuitiv und effektiv für mittelgroße Listen und bietet eine klare und einfache Lösung für dieses alte Rätsel.

Das, was Sie oben gesehen haben, ist ein Auszug aus meinem Tagebuch, 100 % wahr. Aber über ihre Storified-Version derselben ist eine „storifiziertere“ Version verfügbar

Das obige ist der detaillierte Inhalt vonEine poetische Herausforderung!?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wie werden Arrays im wissenschaftlichen Computer mit Python verwendet?Wie werden Arrays im wissenschaftlichen Computer mit Python verwendet?Apr 25, 2025 am 12:28 AM

Arraysinpython, besondersvianumpy, arecrucialInScientificComputingFortheirefficience undvertilität.1) Sie haben festgelegt, dass die Fornerikerne, Datenanalyse und Machinelarning.2) Numpy'SimplementationIncensuresFasteroperationsdanpythonlisten.3) Araysensableableableableableableableableableableableableableableableableableableableableableableableableableable

Wie gehen Sie mit verschiedenen Python -Versionen im selben System um?Wie gehen Sie mit verschiedenen Python -Versionen im selben System um?Apr 25, 2025 am 12:24 AM

Sie können verschiedene Python -Versionen mithilfe von Pyenv, Venv und Anaconda verwalten. 1) Verwalten Sie PYENV, um mehrere Python -Versionen zu verwalten: Installieren Sie PyEnv, setzen Sie globale und lokale Versionen. 2) Verwenden Sie VenV, um eine virtuelle Umgebung zu erstellen, um Projektabhängigkeiten zu isolieren. 3) Verwenden Sie Anaconda, um Python -Versionen in Ihrem Datenwissenschaftsprojekt zu verwalten. 4) Halten Sie das System Python für Aufgaben auf Systemebene. Durch diese Tools und Strategien können Sie verschiedene Versionen von Python effektiv verwalten, um den reibungslosen Betrieb des Projekts zu gewährleisten.

Was sind einige Vorteile bei der Verwendung von Numpy -Arrays gegenüber Standard -Python -Arrays?Was sind einige Vorteile bei der Verwendung von Numpy -Arrays gegenüber Standard -Python -Arrays?Apr 25, 2025 am 12:21 AM

NumpyarrayShaveseveraladVantagesOverStandardPythonArrays: 1) SiearemuchfasterDuetoc-basiert, 2) sie istaremoremory-effizient, insbesondere mit mit LaShlargedatasets und 3) sie können sich mit vektorisierten Funktionsformathematical und Statistical opertical opertical opertical operticaloperation, Making

Wie wirkt sich die homogene Natur der Arrays auf die Leistung aus?Wie wirkt sich die homogene Natur der Arrays auf die Leistung aus?Apr 25, 2025 am 12:13 AM

Der Einfluss der Homogenität von Arrays auf die Leistung ist doppelt: 1) Homogenität ermöglicht es dem Compiler, den Speicherzugriff zu optimieren und die Leistung zu verbessern. 2) aber begrenzt die Typ -Vielfalt, was zu Ineffizienz führen kann. Kurz gesagt, die Auswahl der richtigen Datenstruktur ist entscheidend.

Was sind einige Best Practices für das Schreiben von ausführbaren Python -Skripten?Was sind einige Best Practices für das Schreiben von ausführbaren Python -Skripten?Apr 25, 2025 am 12:11 AM

TocraftexecutablePythonScripts, folge theseBestPractices: 1) addashebangline (#!/Usr/bin/envpython3) tomakethescriptexcutable.2 SetPermissions withchmod xyour_script.py.3) organisation -bithacleardocstringanduseInname == "__ __": FormAcleardocstringanduseInname

Wie unterscheiden sich Numpy Arrays von den Arrays, die mit dem Array -Modul erstellt wurden?Wie unterscheiden sich Numpy Arrays von den Arrays, die mit dem Array -Modul erstellt wurden?Apr 24, 2025 pm 03:53 PM

NumpyarraysarebetterFornumericaloperations und multi-dimensionaldata, whilethearraymoduleiStableforbasic, an Gedächtniseffizienten

Wie vergleichen sich die Verwendung von Numpy -Arrays mit der Verwendung der Array -Modularrays in Python?Wie vergleichen sich die Verwendung von Numpy -Arrays mit der Verwendung der Array -Modularrays in Python?Apr 24, 2025 pm 03:49 PM

NumpyarraysarebetterforeheavynumericalComputing, während der projectwithsimpledatatypes.1) numpyarraysoferversatility und -PerformanceForlargedataSets und Compoxexoperations.2) thearraysoferversStility und Mächnory-Effefef

Wie bezieht sich das CTypes -Modul auf Arrays in Python?Wie bezieht sich das CTypes -Modul auf Arrays in Python?Apr 24, 2025 pm 03:45 PM

ctypesallowscreatingandmanipulationsc-stylearraysinpython.1) usectypestoInterfaceWithClibraryForperformance.2) createCec-stylearraysFornumericalComputationen.3) PassarrayStocfunctionsFectionFicecher-Operationen.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software