Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Ansatz für Funktion gesucht - Ermittlung von Werten

Frage Entwicklung

Mitglied: 8644

8644 (Level 3)

11.04.2007, aktualisiert 26.04.2007, 4139 Aufrufe, 5 Kommentare

Kleine Nuss, mit der ich mich schon eine Weile herum schlage

Hallo Forum!

Folgende Problematik:
Gegeben ist eine Liste mit Werten (Preisen), eine Anzahl und ein Gesamtwert.
Bsp.

Die Liste : 25,28,30 ... 3500 (ca. 170 Werte, jeweils mit einem Index versehen)
Anzahl = 456
Gesamtwert = 50678

Das Ergebnis könnte in etwa so aussehen:

20 * 30 = 600
100 * 25 = 2500
usw.
Am Ende müssen die Summen für Anzahl und Gesamtwert mit den gegebenen Werten übereinstimmen.

Wie würdet ihr an die Sache gehen? Bei mir muss es Delphi sein, aber ein Ansatz in einer anderen Sprache würde mir schon weiter helfen.

Danke

Psycho
Mitglied: filippg
11.04.2007 um 16:34 Uhr
Hallo,

also irgendwie hast du deine Frage nicht so wirklich prickelnd formuliert. Sehe ich das so richtig: Du hast Artikel und dazugehörige Preise. Dann hast du einen Warenkorb, von dem du nicht weisst, was drinne ist, sondern nur wie viele Artikel das insgesamt sind, und wie viel der ganze Korb wert ist.

Dann ist das eine Erweiterung des klassischen Rucksackproblems und als solches wohl NP-Vollständig. Mit anderen Worten: da hilft nicht viel ausser Ausprobieren, gegebenenfalls noch mit einer Heuristik als Unterstützung. Zum Rucksackproblem findet sich einiges im Internet.

Filipp
Bitte warten ..
Mitglied: 8644
13.04.2007 um 11:09 Uhr
Hallo Filipp,

sorry, dass ich mich ungeschickt ausgedrückt habe! Da du aber mein Problem richtig interpretiert hast, kann es ja so schlimm nicht gewesen sein !
Du triffst den Nagel auf den Kopf! Hab mich auch schon im Internet umgesehen, dort gibt es zwar viele Erklärungen (schön, dass ich jetzt weiss, dass mein Problem auch einen Namen hat!), aber eine richtige Lösung ist wohl wirklich nur durch etliche Versuche zu bekommen.
Ich werde mich am WE mal intensiver damit befassen und wenn mir was gelingt, melde ich mich wieder!

Psycho
Bitte warten ..
Mitglied: 8644
26.04.2007 um 16:59 Uhr
So, es war dann doch zu warm zum Grübeln!
Ich habe mir eine Prozedur gebastelt, die für mein Problem geeignet ist.
Da das Ganze aber zu speziell ist, klemme ich es mir, den Code hier zu posten.

Also gelöst!

Psycho
Bitte warten ..
Mitglied: filippg
26.04.2007 um 17:19 Uhr
Hallo,

aber ich vermute mal, die Prozedur tut auch nichts anderes als (evtl. geschicktes) Ausprobieren?

Filipp
Bitte warten ..
Mitglied: 8644
26.04.2007 um 18:21 Uhr
Hi Filipp

aber ich vermute mal, die Prozedur tut auch
nichts anderes als (evtl. geschicktes)
Ausprobieren?

Im Prinzip schon, ich nenne es jetzt aber mal "Annähern"

Ich mache einige Schleifendurchläufe, in denen ich zuererst eine Division - Rest der Summe durch Rest der Anzahl - durchführe. Dann durchlaufe ich die Liste rückwärts, bis ich den Wert finde, der vorhanden ist und kleiner als das Ergebnis der Division. Jetzt multipliziere ich bei Anzahl = 1 (und dann natürlich das Inkrement) angefangen solange mit dem gefundenen Wert bis entweder eine Ganzzahldivision durch einen vorhandenen Wert möglich ist oder ein nächst höherer Wert gefunden wurde!

Bis jetzt ging es immer auf!

Ich glaube zwar nicht, dass das jetzt jemand verstanden hat, aber irgend was ist ja immer

Falls Interesse besteht, maile ich dir die Prozedur mal.

Psycho
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst VBA: Verständnisfrage bei Funktionen, Rückgabe von Werten (3)

Frage von Aximand zum Thema VB for Applications ...

LAN, WAN, Wireless
gelöst Ermittlung des besten WLAN-Standortes (3)

Frage von honeybee zum Thema LAN, WAN, Wireless ...

Microsoft Office
IF-Funktion, die nichts tut bei false (12)

Frage von Stoffn zum Thema Microsoft Office ...

Batch & Shell
gelöst Powershell Wert der Property entfernen manipulieren (9)

Frage von Nintox zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (18)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
IP Adressen - Modem - Switch - Accesspoint (17)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
DNS ins mehreren Subnetzen (13)

Frage von joerg zum Thema Windows Netzwerk ...