PYTHON ANSÄTZE !!!

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Über welche Sprache reden wir nun? *scnr*
BlackJack

Also in OCaml sähe es so aus:

Code: Alles auswählen

let rec fakultaet x = if x > 1 then x * fakultaet (x - 1) else 1 ;;
Wobei ich mich jetzt natürlich frage was die Fakultätsfunktion in einer Hitparadenverwaltung zu suchen hat!?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Also in OCaml sähe es so aus
In Scheme hingegen eher so:

Code: Alles auswählen

(define (fakultaet x)
  (if (< x 1)
      1
      (* x (fakultaet (- x 1)))))
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Hmmm..

Code: Alles auswählen

fac n | n <=1     = 1
      | otherwise = n * fac (n-1)
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
BlackJack

Oder in x86-Assembler (NASM-Syntax, von C aufrufbar):

Code: Alles auswählen

section .text
global fac
; extern int fac(int x);
fac:
        mov eax, [esp+4]
        mov ecx, 1
rfac:
        cmp eax, ecx
        jg .rec_branch
        mov eax, ecx
        ret
.rec_branch:
        push eax
        dec eax
        call rfac
        pop edx
        mul edx
        ret
Jona
User
Beiträge: 94
Registriert: Sonntag 23. September 2007, 23:25

es ist schon recht schwer dir zu folgen...
wenn du in einem forum postest solltest du darauf achten, dass auch jeder versteht was du willst.
immerhin schreist du nicht mehr so...
blackmamba28 hat geschrieben: nur das mit den operatoren kapiere ich nciht ganz
wie das gehen soll
was meinst du damit? meinst du "%" ?
blackmamba28 hat geschrieben: und zu return komm ich auch nciht weiter
kannst du mir das bitte erklären ??
du meinst du verstehst nicht was return tut?
hast du das beispiel dazu von blackjack ausgeführt?

blackmamba28 hat geschrieben: ich hab mal in wiki geguckt, aber ich hab null ahnung wie ich das darein bringen soll

Code: Alles auswählen

int fakultaet(int x)
{
    if (x > 1)
        return x * fakultaet(x-1);
    else
        return 1;
}
was willst du uns damit sagen?
soll das ein beispiel sein, was man tolles mit "return" anfangen kann?

hast du das tutorial durchgearbeitet?
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Sorry, aber bin ich der einzige, der glaubt, dass BlackMamba nur ein Troll ist?
Mal ernsthaft, wie realistisch ist es, dass seine Lehrerin im Chat unterrichtet, er bei Arbeiten das Internet nutzen darf, er jedesmal alle Reizthemen mitnimmt (Lern- und Schreibunfähigkeit, unhöflichkeit, verlangender Tonfall, Arroganz), und nichtmal gerafft haben soll, dass C kein python ist? Das er zu blöd ist, auch nur ein einziges Tutorial zu raffen? Das er zu blöd ist, die Funktion eines return-statements zu peilen? Und, wohlgemerkt, das ganze nach x Veruschen nicht?
Das er "zufällig" das erste mal an einem Freitag gepostet hat, an dem auf Heise nicht viel los war?
Ich glaube, da macht nur jemand den Versuch, entweder "How to ask Questions the Smart way" zu testen, oder "Die Jugend von Heute" zu diskreditieren.
windner
User
Beiträge: 76
Registriert: Freitag 19. Oktober 2007, 11:25

keppla hat geschrieben:Sorry, aber bin ich der einzige, der glaubt, dass BlackMamba nur ein Troll ist?
Da war ich mir anfangs auch sehr sicher, aber dann dieses chat-log! Wenn Troll, dann einer mit sehr viel Langeweile.

BJack, Leo und gerold geben sich allen voran sehr viel Mühe, einen freundlichen Ton anzuschlagen, wovon ich selbst schon profitiert habe. Das macht dieses Forum zu einem der angnehmsten, die ich kenne. Ich könnte mir durchaus vorstellen, dass der blackmamba das ausnutzen und Ausfälle provozieren will.
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

windner hat geschrieben:
keppla hat geschrieben:Sorry, aber bin ich der einzige, der glaubt, dass BlackMamba nur ein Troll ist?
Da war ich mir anfangs auch sehr sicher, aber dann dieses chat-log! Wenn Troll, dann einer mit sehr viel Langeweile.
Ist das nicht irgendwie Voraussetzung zum Trollen?
BJack, Leo und gerold geben sich allen voran sehr viel Mühe, einen freundlichen Ton anzuschlagen, wovon ich selbst schon profitiert habe.

Finde ich auch eine Bemerkenswerte Leistung.
Ich wollte auch nicht zur Unhöflichkeit aufrufen, mich wundert nur, dass tatsächlich noch jemand davon ausgeht, BlackMamba würde tatsächlich Hilfe brauchen oder wollen.
BlackJack

Klar haben Trolle zu viel Zeit, aber *so* viel? Na egal, ich hatte eine Abwandlung von Hanlon's Razor im Hinterkopf als ich meine erste Antwort hier verfasste. Über das Assume Good Faith war ich schon hinaus. :-)
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

BlackJack hat geschrieben:Klar haben Trolle zu viel Zeit, aber *so* viel?
So viel Zeit brauch er doch gar nicht. Irgendwo mal ein paar Hausaufgaben ergooglen, und ein Chatlog ausdenken. Braucht nicht so viel länger, als die Antworten, die geschrieben wurden, vermute ich mal.
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Wenn ich mir den Thread hier so ansehe, scheint blackmamba nicht der einzige zu sein, der zu viel Zeit hat ;)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

mawe hat geschrieben:Wenn ich mir den Thread hier so ansehe, scheint blackmamba nicht der einzige zu sein, der zu viel Zeit hat ;)
Hey, es hat auch sein gutes, dass Blackmamba hier gepostet hat. So konnte ich mich daran machen Mzscheme über `rlwrap` mit readline zu verbinden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@mawe: Keine Ahnung was Du meinst. :-)

Hier ist die Fakultät in XSLT:

Code: Alles auswählen

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  
  <xsl:template name="main" match="/">
    <result>
      <xsl:call-template name="fac">
        <xsl:with-param name="n" select="argument/text()"/>
      </xsl:call-template>
    </result>
  </xsl:template>
  
  <xsl:template name="fac">
    <xsl:param name="n"/>
    <xsl:param name="accu" select="1"/>
    <xsl:choose>
      <xsl:when test="$n > 1">
        <xsl:call-template name="fac">
          <xsl:with-param name="n" select="$n - 1"/>
          <xsl:with-param name="accu" select="$accu * $n"/>
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$accu"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  
</xsl:stylesheet>
Und ein kleiner Test:

Code: Alles auswählen

bj@s8n:~$ cat input.xml
<argument>10</argument>
bj@s8n:~$ xsltproc fac.xslt input.xml
<?xml version="1.0"?>
<result>3628800</result>
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Code: Alles auswählen

fac n = product [1..n]
:wink:
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

veers hat geschrieben:

Code: Alles auswählen

fac n = product [1..n]
:wink:
Naja, das kannst du in Python auch haben :)
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Wie?

Code: Alles auswählen

def fac(n): return reduce(operator.mul, xrange(1, n+1), 1)
finde ich weniger schön.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Jona
User
Beiträge: 94
Registriert: Sonntag 23. September 2007, 23:25

Code: Alles auswählen

eval("*".join([str(i) for i in range(1, n+1)]))
:shock:
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

veers hat geschrieben:Wie?

Code: Alles auswählen

def fac(n): return reduce(operator.mul, xrange(1, n+1), 1)
finde ich weniger schön.
Aber genauso ist Haskells `product` definiert.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
blackmamba28
User
Beiträge: 26
Registriert: Freitag 14. September 2007, 09:58
Wohnort: bonn

sorry aber ich verstehe eure sprache nciht
was bedeutet troll für euch ??
das wir mit unsere lehrerin unterricht übers chat machen stimmt die gibt und jedesmal neue aufgaben und wir müssen die bearbeiten, wenn wir fragen haben antwortet sie die im chat.
aber die hilft uns nciht richtig weiter. die programme die wir bearbeiten müssen, besprechen wir garnicht und aus unseren fehlern können wir auch nciht lernen. Der ganze Kurs hat fünfen und sechsen ausser 2.
aber die sind auch nciht viel hilfsbereit, wie hier im forum (danke)
ja wir schreiben tests und ja wir können das internet und unsere materialien benutzen, aber das nützt uns nichts, jeder hat ne 6 bekommen
wir haben uns schon mehrmals beschwert und am dienstag kreigen wir einen feedback darüber, wie wie weiter unterricht machen
ich mach das hier nicht, weil ich langeweile oder zu viel zeit habe
ich will nur keine 6 auf den zeugnis haben, weil ich sonst von der schule fliege.
dieses programm fertigzustellen ist meine letzte chance dafür...
ich bedanke mich ncohmals an die leute die mir hier ihren vertrauen und hilfe geben
BlackJack, Leo ,gerold etc.
Und ja ich hab mich freitags angemeldet, weil ich das hier ernst meine
ich hab nciht viel zeit, am dienstag 8.45 uhr muss ich das programm abgeben.
ich opfere sogar mein wochende dafür und lese die tutorials durch
aber bis jetzt bin ich nciht richtig weitergekommen, weil ich das erste jahr informatik habe und mir die praxis fehlt....
Hoffe kriege jetzt rationale antworten von euch was das programm betrifft.
Danke!
Zuletzt geändert von blackmamba28 am Samstag 1. Dezember 2007, 23:36, insgesamt 1-mal geändert.
Gesperrt