Ich weiß, dass dies eine absolut dumme Frage zu sein scheint, aber ich bin zu neugierig, um sie nicht zu stellen ...
Warum wurden "i" und "j" DIE Variablen, die in den meisten Kontrollstrukturen als Zähler verwendet werden sollten?
Obwohl mir der gesunde Menschenverstand sagt, dass sie genau wie X sind, das zur Darstellung unbekannter Werte verwendet wird, kann ich nicht anders, als zu glauben, dass es einen Grund geben muss, warum jeder immer wieder auf die gleiche Weise unterrichtet wird.
Liegt es daran, dass es tatsächlich für Best Practices oder eine Konvention empfohlen wird, oder hat es einen unbekannten Grund dafür?
Nur für den Fall, ich weiß , dass ich ihnen einen beliebigen Namen geben kann und dass Variablennamen nicht relevant sind.
quelle
Antworten:
Es kommt letztendlich aus der Mathematik: Die Summationsnotation verwendet traditionell i für den ersten Index, j für den zweiten und so weiter. Beispiel (von http://en.wikipedia.org/wiki/Summation ):
Es wird auch auf diese Weise für Sammlungen von Dingen verwendet, z. B. wenn Sie eine Reihe von Variablen x 1 , x 2 , ... x n haben , wird eine beliebige Variable als x i bezeichnet .
Ich stelle mir vor, dass SLaks richtig ist, weil ich der erste Buchstabe im Index bin.
quelle
i
in der Mathematik verwendet?Ich glaube, es geht auf Fortran zurück. Variablen, die mit I bis Q beginnen, waren standardmäßig ganzzahlig, die anderen waren real. Dies bedeutete, dass dies
I
die erste ganzzahlige Variable undJ
die zweite usw. war, sodass sie in Schleifen verwendet wurden.quelle
I
durch unterrichtet . Google scheint größtenteils zuzustimmen. (verschiedene Versionen von FORTRAN?)N
Q
Mathematiker verwendeten i, j, k, um Ganzzahlen in der Algebra (Indizes, Reihen, Summierungen usw.) zu bezeichnen, lange bevor es Computer gab (z. B. 1836 oder 1816 ) (dies ist der Ursprung der Standardeinstellungen für FORTRAN-Variablentypen). Die Gewohnheit, Buchstaben aus dem Ende des Alphabets unter Verwendung von (..., x, y, z) für die unbekannten Variablen und von Anfang an (a, b, c , ...) für Konstanten wird allgemein zugeschrieben zu René Descartes (siehe auch hier ) also nehme ich an, dass i, j, k ... n (in der Mitte des Alphabets) für ganze Zahlen wahrscheinlich auch auf ihn zurückzuführen ist.
quelle
i = ganze Zahl
Kommt aus Fortran, wo ganzzahlige Variablen mit den Buchstaben I bis N beginnen mussten und echte Variablen mit den anderen Buchstaben begannen. Somit war ich der erste und kürzeste ganzzahlige Variablenname. Fortran war eine der frühesten weit verbreiteten Programmiersprachen, und die von Programmierern entwickelten Gewohnheiten wurden auf andere Sprachen übertragen.
EDIT : Ich habe kein Problem mit der Antwort, dass es aus der Mathematik stammt. Zweifellos haben sich hier die Fortran-Designer inspirieren lassen. Tatsache ist, für mich jedenfalls, als ich anfing, in Fortran zu programmieren, verwendeten wir I, J, K, ... für Schleifenzähler, weil sie kurz waren und die ersten gesetzlich zulässigen Variablennamen für ganze Zahlen. Als Student im zweiten Studienjahr an der HS hatte ich wahrscheinlich von Descartes (und einigen wenigen anderen) gehört, aber beim Programmieren nur sehr wenig Verbindung zur Mathematik hergestellt. Tatsächlich hieß der erste Kurs, den ich belegte, "Fortran for Business" und wurde nicht von der Fakultät für Mathematik, sondern von der Fakultät für Wirtschaft / Wirtschaft unterrichtet.
Zumindest für mich hatte die Benennung von Variablen wenig mit Mathematik zu tun, aber alles aufgrund der Gewohnheiten, Fortran-Code zu schreiben, den ich in andere Sprachen trug.
quelle
i
steht für I ndex.j
kommt nachi
.quelle
Diese Symbole wurden lange vor der Erfindung elektronischer Computer als Matrixindizes in der Mathematik verwendet.
quelle
Ich denke, es wird höchstwahrscheinlich vom Index abgeleitet (im mathematischen Sinne ) - es wird häufig als Index in Summen oder anderen satzbasierten Operationen verwendet und wurde höchstwahrscheinlich schon früher verwendet, bevor es Programmiersprachen gab.
quelle
Y = Σ Xi
vor jeder Programmiersprache.i
. Aber ursprünglich benutze ich es hauptsächlich, weil der gesamte Code, den ich mir anderswoIn der Mathematik wird bevorzugt, aufeinanderfolgende Buchstaben im Alphabet für "anonyme" Variablen zu verwenden, die auf ähnliche Weise verwendet werden. Daher nicht nur "i, j, k", sondern auch "f, g, h", "p, q, r", "x, y, z" (selten mit "u, v, w" vorangestellt), und "α, β, γ".
Jetzt werden "f, g, h" und "x, y, z" nicht frei verwendet: Ersteres gilt für Funktionen, letzteres für Dimensionen. "p, q, r" werden auch häufig für Funktionen verwendet.
Dann gibt es andere Einschränkungen für verfügbare Sequenzen: "l" und "o" werden vermieden, da sie in vielen Schriftarten zu sehr wie "1" und "0" aussehen. "t" wird oft für die Zeit verwendet, "d & δ" für Differentiale und "a, s, m, v" für die physikalischen Maße von Beschleunigung, Verschiebung, Masse und Geschwindigkeit. Das lässt nicht so viele Lücken von drei aufeinanderfolgenden Buchstaben ohne unerwünschte Assoziationen in der Mathematik für Indizes.
Wie mehrere andere bemerkt haben, hatten Konventionen aus der Mathematik einen starken Einfluss auf frühe Programmierkonventionen, und "α, β, γ" war in vielen frühen Zeichensätzen nicht verfügbar.
quelle
a, b, c
ist eine ziemlich häufig verwendete Sequenz, obwohla
sie mehrere Bedeutungen hat ...Ich fand eine andere mögliche Antwort, die sein könnte, dass ich, j und k von kommen
Hamilton's Quaternions
.Euler wählte i für die imaginäre Einheit.
Hamilton brauchte zwei weitere Quadratwurzeln von -1:
ii = jj = kk = ijk = -1
Hamilton war wirklich einflussreich, und Quaternionen waren vor 1900 die Standardmethode für die 3D-Analyse. Bis dahin waren Mathematiker daran gewöhnt, (ijk) als übereinstimmenden Satz zu betrachten. Die Vektorrechnung ersetzte in den 1890er Jahren die quaternionische Analyse, da dies eine bessere Möglichkeit war , Maxwells Gleichungen zu schreiben. Aber die Leute neigten dazu, Vektorgrößen wie folgt zu schreiben:
(3i-2j+k)
statt(3,-2,1)
. So wurde (ijk) zu den Standardbasisvektoren in R ^ 3.Schließlich begannen die Physiker, mithilfe der Gruppentheorie Symmetrien in Differentialgleichungssystemen zu beschreiben. Also begann (ijk), "Vektoren, die durch Permutationsgruppen ausgetauscht werden", zu konnotieren, und wandte sich dann "indexähnlichen Dingen zu, die alle möglichen Werte in einer bestimmten Menge annehmen", was im Grunde genommen das ist, was sie in einer for-Schleife bedeuten.
quelle
durch Verwerfen (ein wenig voreingenommen)
quelle
number
, normalerweise die Anzahl der Elemente in einer Menge.An einem sonnigen Nachmittag überlegte Archimedes, was er sich überlegte ( wie es an sonnigen Nachmittagen üblich war ) und traf seinen Kumpel Eratosthenes.
Archimedes sagte: "Archimedes zu Eratosthenes Gruß! Ich versuche, eine Lösung für das Verhältnis mehrerer kugelförmiger starrer Körper im Gleichgewicht zu finden. Ich möchte diese Körper mehrmals durchlaufen, aber ich habe eine schreckliche Zeit, den Überblick zu behalten von wie vielen Iterationen habe ich gemacht! "
Eratosthenes sagte: "Warum Archimedes, du reife Pflaume eines Kindes, du könntest nur aufeinanderfolgende Reihen von Linien im Sand markieren, wobei jede die Anzahl der Iterationen verfolgt, die du innerhalb der Iteration durchgeführt hast!"
Archimedes rief der Welt zu, sein großer Freund sei zweifellos ein leuchtendes Leuchtfeuer der Intelligenz, um eine so einfache Lösung zu finden. Aber Archimedes bemerkte, dass er gerne im Kreis um seine Sandgrube läuft, während er nachdenkt. Somit bestand die Gefahr, den Überblick darüber zu verlieren, welche Reihe oben und welche unten war.
"Vielleicht sollte ich diese Zeilen mit einem Buchstaben des Alphabets gleich nebenan markieren, damit ich immer weiß, welche Zeile welche ist! Was halten Sie davon?" Er fragte und fügte dann hinzu: "Aber Eratosthenes ... welche Buchstaben soll ich verwenden?"
Eratosthenes war sich sicher, dass er nicht wusste, welche Briefe am besten wären, und sagte dies auch zu Archimedes. Aber Archimedes war unzufrieden und forderte den armen Bibliothekar weiterhin auf, zumindest die beiden Buchstaben zu wählen, die er für seine derzeitige Sphärengleichgewichtslösung benötigen würde.
Eratosthenes, endlich müde von der unaufhörlichen Bitte um zwei Briefe, schrie: "Ich weiß es einfach nicht !!!"
Also wählte Archimedes die ersten beiden Buchstaben in Eratosthenes 'Ausrufungssatz und dankte seinem Freund für den Beitrag.
Diese Symbole wurden schnell von antiken griechischen Java-Entwicklern übernommen, und der Rest ist ... Geschichte.
quelle
j
.Ich denke, das liegt daran, dass viele Schleifen eine Variable vom Typ Int verwenden, um das Zählen durchzuführen, wie z
und wenn Sie tippen, sprechen Sie es tatsächlich in Ihrem Kopf aus (wie beim Lesen), also sagen Sie in Ihrem Kopf 'int ....'
und wenn Sie direkt nach diesem 'int ....' einen Buchstaben erfinden müssen, sagen / geben Sie das 'i' ein, weil dies der erste Buchstabe ist, an den Sie denken, wenn Sie gerade 'int' gesagt haben.
Wenn Sie Kindern, die anfangen zu lesen, ein Wort buchstabieren, buchstabieren Sie Wörter für sie, indem Sie folgende Namen verwenden:
WORT buchstabiert William W, Ok O, Ruby R, Done D.
Sie sagen also Int I, Double d, Float f, String s usw. basierend auf dem ersten Buchstaben.
Und j wird verwendet, weil, wenn Sie int I getan haben, J direkt danach folgt.
quelle
i
vor dieser Syntax.Ich denke, es ist eine Kombination der anderen genannten Gründe:
Für den Anfang wurde 'i' häufig von Mathematikern in ihrer Notation verwendet, und in den frühen Tagen des Rechnens mit Sprachen, die nicht binär waren (dh auf irgendeine Weise analysiert und lexiert werden mussten), war dies die überwiegende Mehrheit der Benutzer von Computern auch Mathematiker (... und Wissenschaftler und Ingenieure), so dass die Notation in Computersprachen für Programmierschleifen verwendet wurde und seitdem irgendwie nur noch herumsteht.
Kombinieren Sie dies mit der Tatsache, dass der Bildschirmplatz in jenen frühen Tagen sehr begrenzt war, ebenso wie der Speicher. Es war sinnvoll, kürzere Variablennamen beizubehalten.
quelle
Möglicherweise historisch?
FORTRAN, wahrscheinlich die erste Hochsprache, definiert i, j, k, l, m standardmäßig als ganzzahlige Datentypen, und Schleifen konnten nur durch ganzzahlige Variablen gesteuert werden.
z.B:
mache 100 i = j, 100,5 .... 100 weiter ....
quelle
i = Iterator, i = Index, i = Ganzzahl
Was auch immer Sie denken, "i" steht dafür, es passt immer noch "zur Rechnung".
Wenn Sie nicht nur eine einzige Codezeile in dieser Schleife haben, sollten Sie die Variable iterator / index / integer wahrscheinlich mit einem aussagekräftigeren Namen versehen. Wie: employeeIndex
Übrigens verwende ich normalerweise "i" in meinen einfachen Iteratorschleifen; es sei denn natürlich, es enthält mehrere Codezeilen.
quelle
i = iota, j = jot; beide kleine Änderungen.
iota ist der kleinste Buchstabe im griechischen Alphabet; In der englischen Sprache ist seine Bedeutung mit kleinen Änderungen verbunden, wie in "nicht ein Jota" (aus einem Satz im Neuen Testament: "Bis Himmel und Erde vergehen, wird kein Jota, kein Punkt vom Gesetz vergehen". (Mt 5,18)).
Ein Zähler repräsentiert eine kleine Änderung eines Wertes.
Und von iota kommt jot (iot), was auch ein Synonym für eine kleine Änderung ist.
vgl. http://en.wikipedia.org/wiki/Iota
quelle
Gut aus der Mathematik: (für lateinische Buchstaben)
a, b: verwendet als Konstanten oder als ganze Zahlen für eine rationale Zahl
c: eine Konstante
d: Ableitung
e: Eulers Zahl
f, g, h: Funktionen
i, j, k: sind Indizes (auch Einheitsvektoren und die Quaternionen)
l: im Allgemeinen nicht verwendet. sieht aus wie 1
m, n: sind Zeilen und Spalten von Matrizen oder als ganze Zahlen für rationale Zahlen
o: auch nicht verwendet (es sei denn, Sie sind in kleiner o-Notation)
p, q: oft als Primzahlen verwendet
r: manchmal eine räumliche Änderung der Variablen andere Zeiten in Bezug auf Primzahlen
s, t: räumliche und zeitliche Variablen oder s werden als Änderung der Variablen für t
u, v, w: Änderung der Variablen
x, y, z: Variablen verwendet
quelle
Viele mögliche Hauptgründe, denke ich:
i
undj
für natürliche Zahlen in Formeln (diejenigen, die komplexe Zahlen zumindest selten verwenden), so dass dies auf die Programmierung übertragen wurdei
Hinweise aufint
. Und wenn Sie eine andere brauchenint
danni2
ist einfach viel zu lang, so dass Sie sich entscheidenj
.i
dann eine istinteger
.quelle
Es kommt aus Fortran, wo i, j, k, l, m, n implizit ganze Zahlen sind.
quelle
Es kommt definitiv aus der Mathematik, die der Computerprogrammierung lange vorausging.
Also, woher kam es, wenn ich in Mathe kam? Meine völlig ungebildete Vermutung ist, dass Mathematiker, wie ein Kollege sagte, gerne alphabetische Cluster für ähnliche Dinge verwenden - f, g, h für Funktionen; x, y, z für numerische Variablen; p, q, r für logische Variablen; u, v, w für andere Variablensätze, insbesondere im Kalkül; a, b, c für viele Dinge. i, j, k ist praktisch für iterative Variablen, und das erschöpft ungefähr die Möglichkeiten. Warum nicht m, n? Nun, sie werden für ganze Zahlen verwendet, aber häufiger für die Endpunkte von Iterationen als für die iterativen Variablen selbst.
Jemand sollte einen Historiker der Mathematik fragen.
quelle
Zähler sind in Programmen so verbreitet, und in den frühen Tagen des Rechnens war alles von höchster Wichtigkeit ...
Programmierer versuchten natürlich, Pixel zu sparen, und das 'i' benötigte weniger Pixel als jeder andere Buchstabe, um darzustellen. (Mathematiker, die faul waren, wählten es aus demselben Grund - als kleinste Glyphe).
Wie bereits erwähnt, folgte 'j' ganz natürlich ...
:) :)
quelle
Ich benutze es aus mehreren Gründen.
Normalerweise basieren meine Schleifen auf int, sodass Sie auf der Tastatur ein vollständiges Dreieck bilden und "int i" eingeben, mit Ausnahme des Leerzeichens, das ich mit meinem Daumen behandle. Dies ist eine sehr schnelle Sequenz zum Eingeben.
Das "i" kann für Iterator, Ganzzahl, Inkrement oder Index stehen, was jeweils logisch sinnvoll ist.
Wenn meine persönlichen Verwendungen beiseite gelegt werden, ist die Theorie, dass sie von FORTRAN abgeleitet ist, richtig, wobei ganzzahlige Variablen die Buchstaben I - N verwendeten.
quelle
Ich habe FORTRAN 1965 auf einer Control Data Corp. 3100 gelernt. Variablen, die mit 'I' bis 'N' beginnen, wurden als ganze Zahlen impliziert. Beispiel: 'IGGY' und 'NORB' waren ganze Zahlen, 'XMAX' und 'ALPHA' waren Gleitkommawerte. Sie können dies jedoch durch eine explizite Deklaration überschreiben.
quelle