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, 4113 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 ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Windows Server
Backup-Programm mit SFTP Funktion gesucht (4)

Frage von hijacker99 zum Thema Windows Server ...

Microsoft Office
gelöst Excel: Text in Zellbereich prüfen mit Vergleichstext ggf. mit Exact-Funktion (5)

Frage von Michi1 zum Thema Microsoft Office ...

JavaScript
AngularJS Variable über Input in Funktion ausführen

Frage von badkilla zum Thema JavaScript ...

Sonstige Systeme
gelöst Kostenfreies Ticketsystem gesucht (1)

Frage von Stefan007 zum Thema Sonstige Systeme ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

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

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...