Aus Endwert einzelne Faktoren rausfinden

Hallo,
Sagen wir mal, man hat 100 Geld ausgegeben. Nun gibt es 4 Gebäude. Eins für 10, 20, 30 und 40 Geld. Wie kann man jetzt berechnen, welche Möglichkeiten es gibt, damit ich auf die Hudert Geld komme? Und gibt es dafür auch ein Proramm?

Gruß
GURKE

Hallo

Sagen wir mal, man hat 100 Geld ausgegeben. Nun gibt es 4
Gebäude. Eins für 10, 20, 30 und 40 Geld. Wie kann man jetzt
berechnen, welche Möglichkeiten es gibt, damit ich auf die
Hudert Geld komme? Und gibt es dafür auch ein Proramm?

wofür brauchst du ein Programm? Der gesunde Verstand eines Zweitklässlers reicht.

10+20+30+40=100

Gruß

Kati

Hi,

Hallo

Sagen wir mal, man hat 100 Geld ausgegeben. Nun gibt es 4
Gebäude. Eins für 10, 20, 30 und 40 Geld. Wie kann man jetzt
berechnen, welche Möglichkeiten es gibt, damit ich auf die
Hudert Geld komme? Und gibt es dafür auch ein Proramm?

wofür brauchst du ein Programm? Der gesunde Verstand eines
Zweitklässlers reicht.

Das war auch ein einfaches Beispiel. Bei dem was ich dann machen wollte, gibt es ungefähr 50 Faktoren und da rechnet man nicht mehr so einfach. Und es gibt ja auch noch mehr Möglichkeiten. z.B. 10*10 Geld oder 8* 10 Geld +20 geld usw.

10+20+30+40=100

Gruß

Kati

GURKE

hallo,

ich glaube, das es so ein programm nicht geben wird.
versuch es mal über eine pivot-tabelle.

gruß

Hallo,
Sagen wir mal, man hat 100 Geld ausgegeben. Nun gibt es 4
Gebäude. Eins für 10, 20, 30 und 40 Geld. Wie kann man jetzt
berechnen, welche Möglichkeiten es gibt, damit ich auf die
Hudert Geld komme? Und gibt es dafür auch ein Proramm?

Ich habe mal ein JavaScript-Programm geschrieben, mit dem man die Stückelung von Briefmarken für ein bestimmtes Porto berechnen kann. Damit sollte sich auch Dein Problem lösen lassen. Einfach bei

var Porto = 5.30 ;

den Gesamptpreis und bei

var Stamps = new Array(new Stamp(0.10,100),new Stamp(0.45,100),new Stamp(0.55,100),new Stamp(0.90,100),new Stamp(1.45,100)) ;

Preis und maximale Anzahl der einzelnen Gebäude eingeben, das Ganze als HTML-Datei speichern und aufrufen.

<?xml version="1.0" encoding="ISO-8859-1" ?>JavaScript-Test

function Stamp(v,c) { this.value=v ; this.count=c }

function CopyStamp(s) { return new Stamp(s.value,s.count) }

function CopyCollection(c) {
 var result = new Array() ;
 for (var i=0;i\<c.length;i++) { result.push(CopyStamp(c[i])) }
 return result ;
}

/\* Porto \*/
var Porto = 5.30 ;

/\* verfügbare Briefmarken \*/
var Stamps = new Array(new Stamp(0.10,100),new Stamp(0.45,100),new Stamp(0.55,100),new Stamp(0.90,100),new Stamp(1.45,100)) ;

/\* Zusammenstellungen \*/
var Collections = new Array() ;
var Results = new Array() ;

/\* Sortierung der Marken einer Zusammenstellung nach Wert \*/
function ByStampValue(a,b) {
 return b.value-a.value ;
}

/\* Sortierung von Zusammenstellungen nach Anzahl der Marken:
 1. möglichst wenig Marken
 2. möglichst wenig unterschiedliche Marken \*/
function ByStampNumber(a,b) {
 var na,nb,result ;
 na=0 ; for (var i=0;i\<a.length;i++) { na+=a[i].count }
 nb=0 ; for (var i=0;i\<b.length;i++) { nb+=b[i].count }
 result=na-nb ;
 if (result=0) { result=a.length-b.length }
 return result ;
}

/\* Gesamtwert einer Zusammenstellung \*/
function TotalValue(c) {
 var result=0 ;
 for (var i=0;i\<c.length;i++) { result+=c[i].value\*c[i].count }
 return Math.round(100\*result)/100 ;
}

function WriteCollection(c) {
 for (var i=0;i\<c.length;i++) { if (c[i].count!=0) { document.write(c[i].count+' × '+c[i].value+' | ') ; } }
 document.write(TotalValue(c)+'\<br\>') ;
}

function WriteCollections(c) {
 for (var i=0;i\<c.length;i++) { WriteCollection(c[i]) ; }
}

function Try(c) {
 /\* kleinsten Wert der Zusammenstellung ermitteln \*/
 var MinValue = 1e10 ;
 for (var i=0;i\<c.length;i++) { if (MinValue\>c[i].value) { MinValue=c[i].value } }
 /\* Marke mit nächstkleinerem Wert suchen \*/
 var MaxValue = 0 ;
 var MaxCount = 0 ;
 for (var i=0;i\<Stamps.length;i++) { 
 if ((Stamps[i].value\<MinValue)&&(Stamps[i].value\>MaxValue)) {
 MaxValue=Stamps[i].value ; MaxCount=Stamps[i].count ;
 }
 }
 /\* wenn es so eine Marke gibt \*/
 if (MaxValue\>0) {
 /\* zulässige Anzahl prüfen \*/
 if (TotalValue(c)+MaxValue\*MaxCount&gt:stuck\_out\_tongue\_winking\_eye:orto) { MaxCount=Math.round((Porto-TotalValue(c))/MaxValue) }
 /\* alle verbleibenden Möglichkeiten durchtesten \*/
 c.push(new Stamp(MaxValue,MaxCount)) ;
 while (c[c.length-1].count\>=0) {
 if (TotalValue(c)==Porto) { 
 Results.push(CopyCollection(c)) ; c[c.length-1].count=0 ;
 } else {
 Try(CopyCollection(c)) ; c[c.length-1].count-- ;
 }
 }
 }
}

function Init() {
 /\* verfügbare Marken in absteigender Reihenfolge nach Wert sortieren \*/
 Stamps.sort(ByStampValue) ;
 /\* Zusammenstellungen durchprobieren \*/
 var Collection = new Array() ;
 Try(CopyCollection(Collection)) ;
 Results.sort(ByStampNumber) ; WriteCollections(Results) ;
}

Init() ;

Hi,

-Ich habe mal ein JavaScript-Programm geschrieben, mit dem man
die Stückelung von Briefmarken für ein bestimmtes Porto
berechnen kann. Damit sollte sich auch Dein Problem lösen
lassen. Einfach bei

OKay habe ich gemacht, aber da kommt immer der Fehler:
XML-Verarbeitungsfehler: nicht wohlgeformt
Adresse: file:///home/julian/Desktop/neue%20Datei
Zeile Nr. 19, Spalte 26: for (var i=0;i

-Ich habe mal ein JavaScript-Programm geschrieben, mit dem man
die Stückelung von Briefmarken für ein bestimmtes Porto
berechnen kann. Damit sollte sich auch Dein Problem lösen
lassen. Einfach bei

OKay habe ich gemacht, aber da kommt immer der Fehler:
XML-Verarbeitungsfehler: nicht wohlgeformt
Adresse: file:///home/julian/Desktop/neue%20Datei
Zeile Nr. 19, Spalte 26: for (var i=0;iJavaScript 2.Versuch