Warum i?

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Hier mal eine etwas seltsame Frage:
Wie kommt es, das viele Programmierer i als Schleifenvariable einsetzen? Hat das ein Herr Knut oder sonstiger Programmierguru als "weiche Konvention" eingeführt?

Edit: Typos, lots of 'em
Zuletzt geändert von jerch am Montag 27. April 2009, 08:20, insgesamt 1-mal geändert.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Wenn man das Objekt mit i bezeichnet weiß jeder sofort worum es sich handelt. Deswegen benutzt man z.B. am besten überall die selbe Konvention für Bezeichnungen. Das sind einfach Dinge die dass verstehen erleichtern.
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

Das i steht meines Wissens für integer.

Kann mich aber auch täuschen :P
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Ich zitiere mal die englische Wikipedia:
Wikipedia hat geschrieben:A common identifier naming convention is for the loop counter to use the variable names i, j and k (and so on if needed), where i would be the most outer loop, j the next inner loop, etc. The reverse order is also used by some programmers. This style is generally agreed to have originated from the early programming of FORTRAN, where these variable names beginning with these letters were implicitly declared as having an integer type, and so were obvious choices for loop counters that were only temporarily required. The practice also dates back further to mathematical notation where indices for sums and multiplications are often i, j, etc.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

DasIch hat geschrieben:Wenn man das Objekt mit i bezeichnet weiß jeder sofort worum es sich handelt. Deswegen benutzt man z.B. am besten überall die selbe Konvention für Bezeichnungen. Das sind einfach Dinge die dass verstehen erleichtern.
Damit erklärst Du eher die Sinnhaftigkeit von Konventionen im Allgemeinen, ich meinte aber das i im Speziellen. Man könnte ja auch einen anderen Buchstaben oder einen sprechenderen Namen nehmen (was ja auch gemacht wird), trotzdem fällt die i-Affinität auf.

@anogayales:
Du meinst so eine Art Denkabkürzung eines Programmierers:
- brauche Zählvariable
- hm, muß integer sein
- Wie nenn ich die bloß?
- hm, ein integer, ..., int, .. ah i
- super, i funktioniert prima
Klingt schon irgendwie einleuchtend, zumindest nachvollziehbar.

Edit:
Danke BlackVivi, sowas hatte ich gesucht. Gerade die Sache mit der mathematischen Notation leuchtet ein. (Nein ich frage jetzt nicht warum das da i, j, k... heißt)
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Falls doch jmd. die Semiotik der math. Notation interessiert, habe ich hier etwas gefunden.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Hui ... das ist ganz schön lang. Daher werfe ich mal meine Theorie ein, ohne es gelesen zu haben ;-)

i ist ja die römische 1. Und evtl. wurde es deswegen in der Mathematik gerne verwendet, quasi der erste Index.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Meine Vermutung: i wie Index. Mathematiker koennen da sehr fantasielos sein. :wink: (f fuer Funktion, n fuer natuerlich Zahl, V fuer Vektorraum, H fuer HIlbertraum, v fuer Vektor, ...) Und da Indezes gerne natuerliche Zahlen sind, trifft man n und m als Indezes auch nicht so ganz selten an...
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Möchte Rebecca da ganz klar unterstützen: i ist in der Regel die erste Indexvariable einer Gleichung und wenn mehr gebraucht werden folgen zwanglos j und k und l .... Und da gerade die Informatik gerade in ihren Anfängen sehr nahe an den mathematischen Fakultäten war, wurden eben auch naheliegende Teile der Formelsprache übernommen.
Guetta
User
Beiträge: 3
Registriert: Dienstag 21. April 2009, 01:58

Und jetzt das Lexikon um alle Zweifel zu beseitigen:

„i“ bezeichnet in der Mathematik, Physik und Informatik eine „Indexvariable“ welche von einer „Indexzahl“ abstammt.
Indexvariablen sind Daten die als Anfangs-, Mittel- oder Endwert einer Berechnung die zeitlichen Veränderungen übersichtlicher aufbereiten.
Weitere Indexvariablen sind: j, k; m, n
Zuletzt geändert von Guetta am Montag 27. April 2009, 14:48, insgesamt 1-mal geändert.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

:?: Was ist das denn bitte fuer ein Lexikon?

Versteh ich nicht, muss ich jetzt mein Mathe-Diplom wieder abgeben...?
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Guetta
User
Beiträge: 3
Registriert: Dienstag 21. April 2009, 01:58

Sorry, war in der Zeile verrutscht, hab's berichtigt, jetzt sollte es verständlich sein.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Nicht viel besser, aber die Wortwahl laesst darauf schliessen, dass es sich hier um Physiker-Mathematik handelt, die kann man als Mathematiker nicht verstehen. :wink:
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Guetta
User
Beiträge: 3
Registriert: Dienstag 21. April 2009, 01:58

Dann macht der Physiker es eben Mathematiker gerecht.
Eine Indexvariable ist eine Variable deren Wert sich im Laufe einer Berechnung verändert, sie kann sowohl Anfangs-, Mittel- als auch Endwert sein.

Code: Alles auswählen

i = 0

while i < 100:
  i = i + 1
    print i
Hier ist die Indexzahl (der Wert) 0, welche zur Indexvariablen i wird. Im Beispiel wird dem Wert der Indexvariablen bei jedem Durchlauf eine 1 angerechnet, bis sie beim Wert 100 angekommen ist.
Die Indexvariable i nimmt also im Laufe des Prozesses erst den Wert 1 an, dann den Wert 2, dann 3,.... bis sie schließlich den Wert 100 hat.
Im Beispiel ist die Indexvariable sowohl Anfangs-, Mittel- als auch Endwert.


Wenn das nicht einleuchtet musst du das Mathe-Diplom wieder abgeben. :wink:
BlackJack

Eine Variable die sich im Laufe der Berechnung *verändert*!? Ich dachte so etwas gibt es in der Mathematik nicht. Weder Zeit ("im Laufe") noch Variablen die nicht beliebig *aber fest* sind. Insbesondere Zeile 5 ist mathematisch gesehen blanker Unsinn, weil 1 nicht das neutrale Element bezüglich der Addition ist. ;-)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Eine Variable die sich im Laufe der Berechnung *verändert*!? Ich dachte so etwas gibt es in der Mathematik nicht. Weder Zeit ("im Laufe") noch Variablen die nicht beliebig *aber fest* sind.
Also sind wir von Physiker-Mathematik zu Informatiker-Mathematik gekommen ;)

Wobei ich aber zugeben muss, dass ich nicht ganz sehe wo das Problem ist... Rebecca meinte das "i" für "Index" steht, was soweit auch einleuchtet und die Frage des OP beantwortet.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

BlackJack hat geschrieben:Eine Variable die sich im Laufe der Berechnung *verändert*!? Ich dachte so etwas gibt es in der Mathematik nicht.
Auch die Mathematik hat eine Art "Laufvariable", um iterative Berechnungen auszudrücken. In einem Summenausdruck steht "i" (unterhalb des Summenzeichens) ja nicht für einen fixen Wert, sondern für einen sich verändernden Index.
BlackJack

@lunar: Nicht wirklich, die Vorstellung kommt nur zustande, wenn man sich den zeitlichen Ablauf denkt, wenn man das mit konkreten Werten ausrechnen möchte. Innerhalb des Teilausdrucks wo das `i` steht, ist es fest.
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Zeitliche Variabilität? Jetzt weiß ich auch endlich was der Punkt über dem "i" bedeutet... :roll:
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Ich habe zwar nichts dagegen, wenn man einen Index als Laufvariable bezeichnet, moechte aber BlackJack zustimmen.

Um bei dem Beispiel der Summe zu bleiben: Das Summenzeichen ist ja eine Schreibweise fuer die Gesamtheit der Summanden, also alle auf einmal, da ist nichts, was sich "im Laufe der Zeit aendert". Ist so aehnlich wie mit Mengenschreibweisen: M = {a in A | a>0}, da sagt man ja eigentlich auch nicht, dass a "sich veraendert".

Naja, der Begriff Index ist in der Mathematik eh nur eine praktische Benamsung (und nichts, was definiert wird oder bestimmte Eigenschaften hat, wie es der Lexikoneintrag suggeriert), von daher ist es muessig, darueber zu diskutieren.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Antworten