Saya tahu ini mungkin tampak seperti pertanyaan yang konyol untuk ditanyakan, namun saya terlalu penasaran untuk tidak bertanya ...
Mengapa "i" dan "j" menjadi variabel THE untuk digunakan sebagai penghitung di sebagian besar struktur kontrol?
Meskipun akal sehat mengatakan kepada saya mereka seperti X, yang digunakan untuk mewakili nilai-nilai yang tidak diketahui, saya tidak dapat berpikir bahwa pasti ada alasan mengapa setiap orang diajarkan dengan cara yang sama berulang-ulang.
Apakah itu karena sebenarnya direkomendasikan untuk praktik terbaik, atau konvensi, atau apakah ada alasan yang tidak jelas di baliknya?
Untuk berjaga-jaga, saya tahu saya bisa memberi mereka nama apa pun yang saya inginkan dan bahwa nama variabel tidak relevan.
variables
language-agnostic
Carlos
sumber
sumber
Jawaban:
Ini akhirnya berasal dari matematika: notasi penjumlahan secara tradisional menggunakan i untuk indeks pertama, j untuk yang kedua, dan seterusnya. Contoh (dari http://en.wikipedia.org/wiki/Summation ):
Ini juga digunakan seperti itu untuk koleksi hal-hal, seperti jika Anda memiliki banyak variabel x 1 , x 2 , ... x n , maka salah satu sewenang-wenang akan dikenal sebagai x i .
Adapun mengapa demikian, saya membayangkan SLaks benar dan itu karena saya adalah huruf pertama dalam Indeks.
sumber
i
digunakan dalam matematika?Saya percaya itu tanggal kembali ke Fortran. Variabel yang dimulai dengan I sampai Q adalah integer secara default, yang lain nyata. Ini berarti bahwa
I
itu adalah variabel integer pertama, danJ
yang kedua, dll, jadi mereka jatuh ke arah digunakan dalam loop.sumber
I
melaluiN
tidakQ
. Google tampaknya sebagian besar setuju. (versi FORTRAN yang berbeda?)Matematikawan menggunakan i, j, k untuk menunjuk bilangan bulat dalam aljabar (subskrip, seri, penjumlahan, dll) jauh sebelum (mis. 1836 atau 1816 ) komputer ada di sekitar (ini adalah asal-usul default jenis variabel FORTRAN). Kebiasaan menggunakan huruf dari akhir alfabet (..., x, y, z) untuk variabel yang tidak diketahui dan dari awal (a, b, c ...) untuk konstanta umumnya dikaitkan dengan Rene Descartes , (lihat juga di sini ) jadi saya menganggap saya, j, k ... n (di tengah alfabet) untuk bilangan bulat kemungkinan karena dia juga.
sumber
i = integer
Berasal dari Fortran di mana variabel integer harus dimulai dengan huruf I hingga N dan variabel nyata dimulai dengan huruf lainnya. Jadi saya adalah nama variabel integer pertama dan terpendek. Fortran adalah salah satu bahasa pemrograman paling awal yang digunakan secara luas dan kebiasaan yang dikembangkan oleh para programmer menggunakannya untuk dibawa ke bahasa lain.
EDIT : Saya tidak punya masalah dengan jawaban yang berasal dari matematika. Tidak diragukan lagi di situlah desainer Fortran mendapatkan inspirasi mereka. Faktanya adalah, bagi saya, ketika saya mulai memprogram di Fortran kami menggunakan I, J, K, ... untuk penghitung loop karena mereka pendek dan nama variabel pertama yang diizinkan secara hukum untuk bilangan bulat. Sebagai mahasiswa tingkat dua di HS saya mungkin pernah mendengar tentang Descartes (dan beberapa lainnya), tetapi membuat sedikit koneksi ke matematika ketika pemrograman. Sebenarnya, kursus pertama yang saya ambil disebut "Fortran untuk Bisnis" dan diajarkan bukan oleh fakultas matematika, tetapi fakultas bisnis / ekonomi.
Bagi saya, setidaknya, penamaan variabel tidak ada hubungannya dengan matematika, tetapi semuanya karena kebiasaan saya mengambil menulis kode Fortran yang saya bawa ke bahasa lain.
sumber
i
singkatan I ndex.j
datang setelahi
.sumber
Simbol-simbol ini digunakan sebagai indeks matriks dalam matematika jauh sebelum komputer elektronik ditemukan.
sumber
Saya pikir itu kemungkinan besar berasal dari indeks (dalam arti matematika ) - ini digunakan secara umum sebagai indeks dalam jumlah atau operasi berbasis set lainnya, dan kemungkinan besar telah digunakan seperti itu sejak sebelum ada bahasa pemrograman.
sumber
Y = Σ Xi
mendahului setiap bahasa pemrograman.i
. Tapi awalnya saya menggunakannya terutama karena semua kode saya lihat di tempat lain menggunakannya, dan yang dapat diwariskan dari programmer Fortran ...Ada preferensi dalam matematika untuk menggunakan huruf berurutan dalam alfabet untuk variabel "anonim" yang digunakan dengan cara yang sama. Oleh karena itu, tidak hanya "i, j, k", tetapi juga "f, g, h", "p, q, r", "x, y, z" (jarang dengan "u, v, w" yang dituliskan), dan "α, β, γ".
Sekarang "f, g, h" dan "x, y, z" tidak digunakan secara bebas: yang pertama adalah untuk fungsi, yang terakhir untuk dimensi. "p, q, r" juga sering digunakan untuk fungsi.
Lalu ada kendala lain pada urutan yang tersedia: "l" dan "o" dihindari, karena mereka terlihat terlalu mirip "1" dan "0" di banyak font. "t" sering digunakan untuk waktu, "d & δ" untuk diferensial, dan "a, s, m, v" untuk ukuran fisik akselerasi, perpindahan, massa, dan kecepatan. Itu tidak meninggalkan begitu banyak celah dari tiga huruf berturut-turut tanpa asosiasi yang tidak diinginkan dalam matematika untuk indeks.
Kemudian, seperti beberapa orang lain perhatikan, konvensi dari matematika memiliki pengaruh kuat pada konvensi pemrograman awal, dan "α, β, γ" tidak tersedia di banyak set karakter awal.
sumber
a, b, c
adalah urutan yang cukup umum digunakan meskipuna
memiliki banyak makna ...Saya menemukan kemungkinan jawaban lain yang bisa berasal dari saya, j, dan k
Hamilton's Quaternions
.Euler memilih saya untuk unit imajiner.
Hamilton membutuhkan dua akar kuadrat dari -1:
ii = jj = kk = ijk = -1
Hamilton benar-benar berpengaruh, dan angka empat adalah cara standar untuk melakukan analisis 3D sebelum 1900. Pada saat itu, matematikawan terbiasa berpikir (ijk) sebagai himpunan yang cocok. Kalkulus vektor menggantikan analisis kuaternion pada tahun 1890 karena itu adalah cara yang lebih baik untuk menulis persamaan Maxwell. Tetapi orang-orang cenderung menulis jumlah vektor seperti ini:
(3i-2j+k)
bukannya(3,-2,1)
. Jadi (ijk) menjadi vektor basis standar di R ^ 3.Akhirnya, fisikawan mulai menggunakan teori grup untuk menggambarkan simetri dalam sistem persamaan diferensial. Jadi (ijk) mulai berkonotasi "vektor yang dapat ditukar oleh kelompok permutasi," kemudian melayang ke arah "hal-hal seperti indeks yang mengambil semua nilai yang mungkin dalam beberapa set tertentu," yang pada dasarnya adalah apa yang mereka maksudkan dalam for loop.
sumber
dengan membuang (sedikit bias)
sumber
number
, biasanya jumlah elemen dalam satu set.Suatu sore yang cerah, Archimedes memikirkan apa ( seperti biasa untuk sore yang cerah ) dan bertemu dengan temannya Eratosthenes.
Archimedes berkata, "Salam Archimedes ke Eratosthenes! Saya mencoba untuk membuat solusi dengan perbandingan beberapa benda kaku berbentuk bola dalam keseimbangan. Saya ingin mengulangi benda-benda ini beberapa kali, tetapi saya memiliki waktu yang menakutkan untuk melacaknya." berapa banyak iterasi yang telah saya lakukan! "
Eratosthenes berkata, "Kenapa Archimedes, dasar premis yang matang, Anda hanya bisa menandai barisan garis yang berurutan di pasir, masing-masing melacak jumlah iterasi yang telah Anda lakukan dalam iterasi!"
Archimedes berseru kepada dunia bahwa sahabatnya itu tak diragukan lagi adalah mercusuar yang bersinar karena menghasilkan solusi yang begitu sederhana. Tetapi Archimedes mengatakan bahwa dia suka berjalan berputar-putar di sekitar lubang pasirnya sementara dia merenung. Dengan demikian, ada risiko kehilangan jejak yang baris di atas, dan yang di bawah.
"Mungkin aku harus menandai baris-baris ini dengan huruf alfabet di sebelah supaya aku selalu tahu baris mana yang mana! Bagaimana menurutmu?" dia bertanya, lalu menambahkan, "Tetapi Eratosthenes ... surat apa saja yang akan saya gunakan?"
Eratosthenes yakin dia tidak tahu surat mana yang terbaik, dan banyak bicara kepada Archimedes. Tetapi Archimedes tidak puas dan terus mendesak pustakawan yang malang itu untuk memilih, paling tidak, dua huruf yang dia perlukan untuk solusi keseimbangan bola saat ini.
Eratosthenes, akhirnya bosan dengan permintaan dua huruf yang tak henti-hentinya, berteriak, "AKU HANYA TIDAK TAHU !!!"
Jadi Archimedes memilih dua huruf pertama dalam kalimat seruan Eratosthenes, dan berterima kasih kepada temannya atas kontribusinya.
Simbol-simbol ini dengan cepat diadopsi oleh pengembang Jawa Yunani kuno, dan sisanya adalah, yah ... sejarah.
sumber
j
.saya pikir itu karena banyak loop menggunakan variabel tipe Int untuk melakukan penghitungan, seperti
dan ketika Anda mengetik, Anda benar-benar mengucapkannya di kepala Anda (seperti ketika Anda membaca), jadi dalam pikiran Anda, Anda mengatakan 'int ....'
dan ketika Anda harus membuat surat tepat setelah 'int ....', Anda mengatakan / ketikkan 'i' karena itu adalah huruf pertama yang Anda pikirkan ketika Anda baru saja mengatakan 'int'
seperti Anda mengeja kata untuk anak-anak yang mulai belajar membaca Anda mengeja kata-kata untuk mereka dengan menggunakan nama, seperti ini:
KATA mantra William W, Ok O, Ruby R, Selesai D
Jadi Anda mengatakan Int I, Double d, Float f, string s dll berdasarkan huruf pertama.
Dan j digunakan karena ketika Anda melakukan int I, J mengikuti setelahnya.
sumber
i
mendahului sintaks ini.Saya pikir itu adalah kombinasi dari alasan yang disebutkan lainnya:
Sebagai permulaan, 'i' biasanya digunakan oleh matematikawan dalam notasi mereka, dan pada hari-hari awal komputasi dengan bahasa yang bukan biner (yaitu harus diurai dan dikupas dengan beberapa cara), sebagian besar pengguna komputer adalah juga matematikawan (... dan ilmuwan dan insinyur) sehingga notasi mulai digunakan dalam bahasa komputer untuk loop pemrograman, dan sejak saat itu masih terus melekat.
Kombinasikan ini dengan fakta bahwa ruang layar pada masa-masa awal sangat terbatas, seperti halnya memori, masuk akal untuk menyimpan nama variabel yang lebih pendek.
sumber
Mungkin historis?
FORTRAN, mungkin bahasa tingkat tinggi pertama, didefinisikan i, j, k, l, m sebagai tipe data Integer secara default, dan loop hanya dapat dikontrol oleh variabel integer, konvensi berlanjut?
misalnya:
do 100 i = j, 100,5 .... 100 continue ....
sumber
i = iterator, i = index, i = integer
Yang pernah Anda pikirkan "i" berarti masih "sesuai dengan tagihan".
Juga, kecuali Anda hanya memiliki satu baris kode di dalam loop itu, Anda mungkin harus menamai variabel iterator / index / integer ke sesuatu yang lebih bermakna. Seperti: employeeIndex
BTW, saya biasanya menggunakan "i" di loop iterator sederhana saya; kecuali tentu saja berisi beberapa baris kode.
sumber
i = iota, j = jot; keduanya perubahan kecil.
iota adalah huruf terkecil dalam abjad Yunani; dalam bahasa Inggris artinya maknanya dikaitkan dengan perubahan kecil, seperti dalam "not one iota" (dari frasa dalam Perjanjian Baru: "sampai langit dan bumi lenyap, tidak sedikit pun, bukan titik, akan berlalu dari Hukum" (Mat 5:18)).
Penghitung mewakili perubahan kecil dalam nilai.
Dan dari iota datang jot (iot), yang juga merupakan sinonim untuk perubahan kecil.
lih. http://en.wikipedia.org/wiki/Iota
sumber
Nah dari Matematika: (untuk huruf latin)
a, b: digunakan sebagai konstanta atau bilangan bulat untuk bilangan rasional
c: konstanta
d: turunan
e: bilangan Euler
f, g, h: fungsi
i, j, k: adalah indeks (juga vektor satuan dan angka kuat)
l: umumnya tidak digunakan. terlihat seperti 1
m, n: adalah baris dan kolom matriks atau sebagai bilangan bulat untuk bilangan rasional
o: juga tidak digunakan (kecuali Anda sedikit notasi)
p, q: sering digunakan sebagai bilangan prima
r: kadang-kadang perubahan spasial variabel kali lain yang terkait dengan bilangan prima
s, t: variabel spasial dan temporal atau s digunakan sebagai perubahan variabel untuk t
u, v, w: perubahan variabel
x, y, z: variabel
sumber
Banyak kemungkinan alasan utama, saya kira:
i
danj
untuk Bilangan Alami dalam rumus (yang menggunakan Bilangan Kompleks jarang, setidaknya), jadi ini dibawa ke pemrogramani
petunjuk untukint
. Dan jika Anda membutuhkan yang lainint
makai2
itu terlalu lama, jadi Anda memutuskan untuk menggunakannyaj
.i
kemudian merupakaninteger
.sumber
Itu berasal dari Fortran, di mana i, j, k, l, m, n adalah bilangan bulat secara implisit.
sumber
Ini pasti berasal dari matematika, yang sudah lama mendahului pemrograman komputer.
Jadi, dari mana asal matematika? Dugaan saya yang sama sekali tidak berpendidikan adalah seperti yang dikatakan oleh satu orang, matematikawan suka menggunakan kelompok alfabet untuk hal yang serupa - f, g, h untuk fungsi; x, y, z untuk variabel numerik; p, q, r untuk variabel logis; u, v, w untuk set variabel lainnya, terutama dalam kalkulus; a, b, c untuk banyak hal. i, j, k sangat berguna untuk variabel iteratif, dan itu tentang melelahkan kemungkinan. Kenapa tidak m, n? Yah, mereka digunakan untuk bilangan bulat, tetapi lebih sering titik akhir iterasi daripada variabel iteratif itu sendiri.
Seseorang harus bertanya kepada sejarawan matematika.
sumber
Penghitung sangat umum dalam program, dan pada hari-hari awal komputasi, semuanya berada pada tingkat tertinggi ...
Pemrogram secara alami mencoba menghemat piksel, dan 'i' membutuhkan piksel lebih sedikit daripada yang harus diwakili oleh huruf lain. (Matematikawan, karena malas, mengambilnya untuk alasan yang sama - sebagai mesin terbang terkecil).
Seperti yang dinyatakan sebelumnya, 'j' secara alami mengikuti ...
:)
sumber
Saya menggunakannya untuk sejumlah alasan.
Biasanya loop saya berbasis int, sehingga Anda membuat segitiga lengkap pada keyboard mengetik "int i" dengan pengecualian ruang yang saya tangani dengan ibu jari saya. Ini adalah urutan yang sangat cepat untuk diketik.
"I" bisa berarti iterator, integer, increment, atau index, yang masing-masing masuk akal.
Dengan penggunaan pribadi saya yang dikesampingkan, teori itu berasal dari FORTRAN benar, di mana integer vars menggunakan huruf I - N.
sumber
Saya belajar FORTRAN pada Control Data Corp 3100 pada tahun 1965. Variabel dimulai dengan 'I' hingga 'N' yang tersirat menjadi bilangan bulat. Contoh: 'IGGY' dan 'NORB' adalah bilangan bulat, 'XMAX' dan 'ALPHA' adalah floating-point. Namun, Anda dapat menimpanya melalui deklarasi eksplisit.
sumber