Du bist nicht eingeloggt! Möglicherweise kannst du deswegen nicht alles sehen.
  (Noch kein mods.de-Account? / Passwort vergessen?)
Zur Übersichtsseite
Hallo anonymer User.
Bitte logge dich ein
oder registriere dich!
 Moderiert von: Che Guevara


 Thema: Gehirnsalat ( wir unter uns )
« erste « vorherige 1 ... 1205 1206 1207 1208 [1209] 1210 1211 1212 1213 ... 6582 nächste » letzte »
erste ungelesene Seite | letzter Beitrag 
Achsel-des-Bösen

AUP Achsel-des-Bösen 06.10.2009
Ich bastel mir einen Baum aus Lauter Knoten. Jeder Knoten hat ein Kind links und ein Kind rechts, die wiederum Knoten sind. Außerdem hat jeder Knoten eine Methode sum(), die die Summe der Werte aller Kindknoten plus den eigene Wert zurückliefert.

Ich nehme mir den RootKnoten und frage für den linken und rechten Kindknoten die Summe ab. Ist die Summe links größer als recht, gehe ich in diese Richtung weiter, ist die Summe rechts größer, gehts dahin weiter.

Wenn man also das Beispiel nimm:
.
   3
  7 5
 2 4 6
8 5 9 3


Wenn wir beim Rootknoten sind, liefert sum für das linke Kind 35 (7+2+4+8+5+9) und für das rechte Kind 32 (5+4+6+5+9+3), ich muss also nach links zur 7 weitergehen.

Wenn meine Idee stimmt, sollte sich das ganze relativ schnell lösen lassen. Der (bisher ungetestete) Lösungsalgorithmus sieht so aus:
 
Code:
path = []
currentNode = rootNode
while currentNode.left and currentNode.right:
    path.append(currentNode.num)
    if currentNode.left.sum() > currentNode.right.sum():
        currentNode = currentNode.left
    else:
        currentNode = currentNode.right
#TODO: path zusammenzählen


Im moment firckel ich aber noch daran den dummen Text in diese Struktur zu pressen, dass ist viel aufwändiger fröhlich
03.08.2007 10:37:11  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
GH@NDI

ghandi2
DAs Problem dabei ist ja aber, dass du immernoch alle Pfade berechnen musst. Und wie Problem 18 bereits erwähnt, wird bei Problem 67 das durchrechnen aller Routen schlicht nichtmehr möglich sein, da du bei 100 Zeilen 2^99 mögliche Routen hast...

Bei deinem Verfahren würde sich das immernoch imens hinziehen (da du ja immer nur halbierst - rechts oder links?)

1. Durchgang 2^99 Berechnungen
2. Durchgang 2^49 Berechnungen
3. Durchgang 2^24 Berechnungen
4. Durchgang 2^12 Berechnungen
5. Durchgang 2^6 Berechnungen
6. Durchgang 2^3 Berechnungen
7. Durchgang 2^1 Berechnungen
Ergebnis

Insgesamt machst du also 2^194 Berechnungen also ~2,5108406941546723055343157692831e+58

Oder ich habe da was missverstanden Breites Grinsen

// Andereseits, würdest du die Ergebnisse Cachen sparst du dir viele Berechnungen. Aber das rettet dich nach meiner Sichtweise auch nicht, da du ja immernoch 2^99 Berechnungen durchführen musst, wenn du dir für jeden Knoten seine Kindknotensumme merkst Breites Grinsen
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von GH@NDI am 03.08.2007 10:46]
03.08.2007 10:45:34  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
3 mal soviel wie Protonen im Universum :x
03.08.2007 10:48:01  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
-Marvin-

-Marvin-
verschmitzt lachen
ihr spinnt doch! alle! jawoll ja!
03.08.2007 10:49:01  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
GH@NDI

ghandi2
 
Zitat von TriggerTG

3 mal soviel wie Protonen im Universum :x



Wer hat die denn gezählt? Breites Grinsen
03.08.2007 10:50:18  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
-Marvin-

-Marvin-
verschmitzt lachen

auch wenn du darauf schwörst daß du nur dir gehörst
geh ich hin und zack unterteile dich in über-ich und unter-ich
und zwischendrin befindet sich dann irgendwo dein wahres ich
03.08.2007 10:52:52  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
-Marvin-

-Marvin-
verschmitzt lachen
angeblich poste ich zu viel mit den Augen rollend
03.08.2007 11:04:57  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
Wer behauptet das?
03.08.2007 11:07:29  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
-Marvin-

-Marvin-
verschmitzt lachen
der/die/das forum
03.08.2007 11:09:06  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
-Marvin-

-Marvin-
verschmitzt lachen
hier, schon wieder:

Fehler:
Du postest zu viel in zu kurzer Zeit - bitte warte ein wenig
03.08.2007 11:09:26  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
Schweinerei! Ein GSLer hat so nicht behandelt zu werden!
03.08.2007 11:11:16  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
-Marvin-

-Marvin-
verschmitzt lachen
und der Buzweed behauptet das auch:

 
Zitat von Buzweed

 
Zitat von kleiner blauer Schlumpf

 
Zitat von Buzweed

SCHLUUUUHUUUMPF



Wos? Ich war grade Weißwurst-Essen peinlich/erstaunt



DER MARVIN TUT VIEL ZU FIEL POSTEN!!! *petz*

[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von -Marvin- am 03.08.2007 11:12]
03.08.2007 11:12:02  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
GH@NDI

ghandi2
Das was mich am meisten an diesem Dreieckproblem wurmt ist, dass bei CodeGolf das selbe Problem existiert und ich damals schon nicht weiter wusste. Es aber Leute mit nur 60Zeichen in Perl lösen können (wohlgemerkt 50Zeilige Dreiecke in weniger als 4 Sekunden CPU-Zeit!)

// Es muss also einen besseren Algorythmus geben, als einfach mal alles durchzusummieren (selbst wenn das summieren bei der 1-Minute-Rule bei ProjectEuler immernoch die Lösung bringen würde Breites Grinsen)
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von GH@NDI am 03.08.2007 11:16]
03.08.2007 11:15:24  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Achsel-des-Bösen

AUP Achsel-des-Bösen 06.10.2009
Ändert aber nichts an der Sache, dass man nunmal alles Knoten mindenst einmal anfassen muss, sonst ist das ganze nämlich nicht in jedem Fall korrekt.

Was wenn mann so einen Baum hat:
. 
          01
        99  01
      99  99  01
    01  01  01  99
  01  01  01  99  99
01  01  01  99  99  99
usw.


Beschränkt man sich hierbei auf eine Suchtiefe von 3 pro Knoten, läuft man in die Falle. Und selbst wenn man eine höhere Suchtiefe ansetz, kann sowas vorkommen. Und was wäre es bitte für eine Lsöung die nur in 99% aller Fälle das richige Ergebnis liefert?

Wie soll man das lösen?
03.08.2007 11:16:19  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Achsel-des-Bösen

AUP Achsel-des-Bösen 06.10.2009
So, ich hab das ganze jetzt mal durchlaufen lassen. Ein Ergbnis für 18 hab ich in 0,1s, ein Ergebnis für 67 in 18 Sekunden.
Das Ergbnis ist zwar nicht richtig (da muss ich noch rausfinden wieso), aber er folgt defintiv meiner Idee.

/: Oh, Fehler gefunden, ich ziehe meine vorschnelle Aussage zurück *hüstel*
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Achsel-des-Bösen am 03.08.2007 11:36]
03.08.2007 11:29:39  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
v!pe

Phoenix
Ich stell die Konsole jetzt einfach bei eBay rein und tu so doof wie der jetzige Verkäufer. peinlich/erstaunt
03.08.2007 11:31:38  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
Du bist ja gemein traurig
03.08.2007 11:48:59  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
GH@NDI

ghandi2
Ich habe jetzt mal Leute die sich damit auskennen müssten gefragt.

Und da ich bis Montag jetzt ja dann erstmal wieder on the road bin (Heute Auftritt Schloßplatz Stuttgart, morgen Auftritt Münster Sarmsheim Kerb, Sonntag heimkommen und Freundin besänftigen Breites Grinsen) will ich euch die Möglichkeit geben, etwaige Lösungsanstäze die im Verlauf dieser Zeit gepostet werden auch zu sichtigen und davon zu profitieren Breites Grinsen
03.08.2007 11:49:49  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
 
Zitat von GH@NDI

Ich habe jetzt mal Leute die sich damit auskennen müssten gefragt.

Und da ich bis Montag jetzt ja dann erstmal wieder on the road bin (Heute Auftritt Schloßplatz Stuttgart, morgen Auftritt Münster Sarmsheim Kerb, Sonntag heimkommen und Freundin besänftigen Breites Grinsen) will ich euch die Möglichkeit geben, etwaige Lösungsanstäze die im Verlauf dieser Zeit gepostet werden auch zu sichtigen und davon zu profitieren Breites Grinsen




Falsches Forum afaik. Die haben doch ein Informatik-Forum

Vielleicht verwechsle ich das aber auch grad mit http://matheplanet.com
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von TriggerTG am 03.08.2007 11:51]
03.08.2007 11:51:09  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
GH@NDI

ghandi2
Ich will ja ganz bewusst keine Informatik Lösung sondern wie sowas mathematisch angegangen wird. Programmieren tue ich den Algorithmus (sofern einer dabei rauskommt Breites Grinsen) dann schon selbst Breites Grinsen
03.08.2007 11:55:30  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
Mathematiker interessiert doch soeine aufgabe gar nicht fröhlich
03.08.2007 11:57:08  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
GH@NDI

ghandi2
Es soll sie ja auch nicht interessieren, sie sollen nur wissen wie es geht! Breites Grinsen
03.08.2007 11:57:49  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Achsel-des-Bösen

AUP Achsel-des-Bösen 06.10.2009
Zum Teufel nochmal, mein Programm rechnet für die kleinen Beispiellösungen absolut korrekt und für die großen ist das Ergbnis angeblich falsch.
Jetzt hab ich die Logik sogar mal umgedreht und es kommt immernoch das selbe raus. Was ist denn das jetzt wieder für ein scheiss?

Määääh, jetzt ist mir das ganze Wochenende versaut! Ich will wissen wie man das löst Wütend
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Achsel-des-Bösen am 03.08.2007 12:02]
03.08.2007 12:00:42  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
v!pe

Phoenix
Hab die Konsole wieder eingestellt. Die Dame bei eBay war nicht sehr nett. "Das müssen sie mit einem Rechtsberater klären, ob das überhaupt hätte erwähnt werden müssen" und "Der Käuferschutz würde ihnen 175€ bringen".

Bei 300€ kein tolles Geschäft.

Hab jetzt lustig in den klitzekleinen "Da Privatverkauf, keine Gewährleistung/Garantie"-Absatz noch mit reingepackt:

 
Desweiteren verzichten Sie damit auf das Recht
auf den xbox.com Zugang und die Möglichkeit, die Konsole auf xbox.com zu registrieren.

03.08.2007 12:04:58  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Achsel-des-Bösen

AUP Achsel-des-Bösen 06.10.2009
Ach zu, Teufle mit dieser Aufgabe, die entsprechend Shells sind zu und werden heute nicht mehr aufgemacht!
03.08.2007 12:08:02  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
-Marvin-

-Marvin-
verschmitzt lachen
wuhahaha *durchdreh*

das wird langsam immer besser...

Breites Grinsen Kopf gegen die Wand schlagen Breites Grinsen
03.08.2007 12:10:36  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
-Marvin-

-Marvin-
verschmitzt lachen
so, ich muss hier raus... sonst dreh ich gleich durch...

das beste ist, ich bin nicht mal sauer oder enttaeuscht, obwohl ich allen Grund haette...

cya
03.08.2007 12:18:15  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Elkano

Elkano
Ok, weiter mit Euler18:
Baum ist definitiv die Falsche Lösung, wenn, dann Graph fröhlich nur dadurch werden die "Teilbäume" auch sauber recycelt, so dass man eben nicht wieder weiter hinabsteigt.

Dadurch bekommt man, wenn man die Kosten für das Bewegen im Baum weg lässt, nämlich auf lineare Kosten, da pro Knoten nur ein Vergleich und eine Summe anfallen.

Im Endeffekt ist der Ansatz also schon richtig, so lange die Funktion die den "Teilbaum" aufsummiert sich das Ergebnis merkt und bei erneutem Aufruf zurück gibt und man das ganze eben nicht als binären Baum sondern als Graphen implementiert.

Fehlt uns nurnoch eine effektive Methode, wie wir den Array-Index der Kinder bestimmen. Aber das sollte kein Problem sein, wenn jeder Knoten weis, wo im Dreieck er sitzt, da ein Knoten in Ebene x an Position y genau die Kinder (x+1,y) und (x+1,y+1) hat. Das Dreieck darüber hat ~ (x-1)*((x-1)/2) Knoten (s.u.), wodurch sich dann die Position in einem Array, das einfach alle Knoten Schicht für Schicht hintereinander hat, ergibt. der rest ist OO Augenzwinkern

Zusatz:
(1) Die Formel für die Anzahl der Knoten im Dreieck über der aktuellen Ebene ist noch nicht richtig, aber das sollte sich lösen lassen.
(2) ist ja einfach die Summe der ersten n-1 Zahlen... also schnapp ich mir Gauß... und lande bei (x-1)*((x-1)+1)/2... war ich ja garnicht mal so weit weg fröhlich
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Elkano am 03.08.2007 12:28]
03.08.2007 12:19:10  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
v!pe

Phoenix
Verkauft. Hihi
03.08.2007 12:33:52  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Elkano

Elkano
OK, scheint zu laufen:
 
Code:
local data = {
   3,
  7,5,
 2,4,6,
8,5,9,3,
}

sum = setmetatable({}, {__index=function(self,pos)
	local posindex = floor((pos[1] - 1)*pos[1]/2) + pos[2]
	local summe = data[posindex] and data[posindex] + max(sum[{pos[1] + 1, pos[2]}], sum[{pos[1] + 1, pos[2] + 1}]) or 0
	self[pos] = summe
	return summe
end})

print(sum[{1,1}])
03.08.2007 12:41:47  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
 Thema: Gehirnsalat ( wir unter uns )
« erste « vorherige 1 ... 1205 1206 1207 1208 [1209] 1210 1211 1212 1213 ... 6582 nächste » letzte »

mods.de - Forum » Webdesign & Coding » 

Hop to:  

Thread-Tags:
Mod-Aktionen:
23.08.2018 12:40:15 TriggerTG hat den Thread-Titel geändert (davor: "Wiederbelebungssalat")
09.03.2017 08:55:19 TriggerTG hat den Thread-Titel geändert (davor: "Gehirnsalat")
21.05.2014 16:08:26 Redh3ad hat den Thread-Titel geändert (davor: "Hochzeitssalat")
10.05.2014 09:43:28 Redh3ad hat den Thread-Titel geändert (davor: "Gehirnsalat")
19.10.2013 21:43:03 [DK]Peacemaker hat diesen Thread repariert.
04.10.2013 20:11:45 TriggerTG hat den Thread-Titel geändert (davor: "Damiferkel-Salat")
29.08.2013 19:59:27 [DK]Peacemaker hat den Thread-Titel geändert (davor: "HerpDerpSalat")
19.08.2013 10:04:19 TriggerTG hat den Thread-Titel geändert (davor: "SirSiggiSalat")
13.08.2013 18:43:13 TriggerTG hat den Thread-Titel geändert (davor: "Kamelwochensalat")
05.08.2013 09:47:37 TriggerTG hat den Thread-Titel geändert (davor: "Gehirnsalat")
24.06.2013 16:30:39 TriggerTG hat den Thread-Titel geändert (davor: "cmssalat")
20.06.2013 12:58:35 TriggerTG hat den Thread-Titel geändert (davor: "Krissalat")
13.06.2013 10:59:25 TriggerTG hat den Thread-Titel geändert (davor: "Gehirnsalat")
08.06.2013 11:28:06 TriggerTG hat den Thread-Titel geändert (davor: "rABBIntensalat")
03.06.2013 09:56:52 TriggerTG hat den Thread-Titel geändert (davor: "Gehirnsalat")

| tech | impressum