Nolinchi raqamlash - Zero-based numbering

Nolga asoslangan raqamlash ning usuli raqamlash unda a ning boshlang'ich elementi ketma-ketlik ga tayinlangan indeks Odatdagidek 1 indeksidan ko'ra 0 matematik bo'lmagan yoki dasturlashtirilmagan holatlar. Nolga asoslangan raqamlash ostida boshlang'ich element ba'zan deb nomlanadi zerot element,[1] o'rniga birinchi element; zerot a o'ylab topilgan tartib raqami raqamga mos keladi nol. Ba'zi hollarda, ma'lum bir ketma-ketlikka tegishli bo'lmagan (dastlab), lekin tabiiy ravishda uning boshlang'ich elementidan oldin joylashtirilishi mumkin bo'lgan ob'ekt yoki qiymat nol element deb nomlanishi mumkin. Nolni tartib sifatida ishlatishning to'g'riligi to'g'risida (shuningdek, atamadan foydalanish to'g'risida) keng kelishuv mavjud emas zerot) chunki bu kontekst etishmovchiligida ketma-ketlikning barcha keyingi elementlari uchun noaniqlik yaratadi.

0 dan boshlanadigan raqamlash ketma-ketliklari matematik yozuvlarda juda keng tarqalgan, xususan kombinatorika, matematikaga oid dasturlash tillari odatda 1 dan indeks bo'lsa ham.[iqtibos kerak ] Yilda Kompyuter fanlari, qator indekslar odatda zamonaviy dasturlash tillarida 0 dan boshlanadi, shuning uchun kompyuter dasturchilari foydalanishi mumkin zerot vaziyatlarda boshqalar foydalanishi mumkin birinchi, va hokazo. Ba'zi bir matematik kontekstlarda tartibli shakllar oldindan aniq nomzod bilan ma'noga ega bo'lganda, nolga asoslangan raqamlash chalkashliksiz ishlatilishi mumkin. birinchi; masalan a zerot lotin funktsiyaning funktsiyasi o'zi tomonidan olingan funktsiya farqlovchi nol marta. Bunday foydalanish ketma-ketlikka tegishli bo'lmagan, lekin undan oldingi elementning nomlanishiga to'g'ri keladi: nolinchi lotin aslida hosila emas. Biroq, xuddi shunday birinchi hosila oldin ikkinchi lotin, shuning uchun ham zerot lotin (yoki asl funktsiyaning o'zi) oldin birinchi hosila.

Kompyuter dasturlash

Kelib chiqishi

Martin Richards, yaratuvchisi BCPL til (kashshof C ), massiv tarkibiga kirishni boshlash uchun tabiiy holat sifatida 0 da boshlanadigan massivlar yaratilgan, chunki ko'rsatgich p manzil sifatida ishlatiladigan pozitsiyaga kirish p Xotirada + 0.[2][3] Kanadalik tizim tahlilchisi Mayk Xoy Richardsdan ushbu anjumanni tanlash sabablarini so'radi. BCPL birinchi uchun tuzilgan IBM 7094; til joriy etildi bilvosita qidiruv da ishlash vaqti, shuning uchun kompilyatsiya vaqtida ushbu massivlar tomonidan taqdim etilgan bilvosita optimallashtirish ishlatilgan.[3] Shunga qaramay, optimallashtirish muhim edi.[3][4]

Edsger V. Dijkstra keyinchalik tegishli yozuv yozgan Nima uchun raqamlash noldan boshlanishi kerak[5] 1982 yilda massiv indekslarining mumkin bo'lgan konstruktsiyalarini ularni zanjirli tengsizlikka qo'shib tahlil qilib, keskin va standart tengsizlikni to'rtta imkoniyatga birlashtirib, uning ishonchliligiga ko'ra nolga asoslangan massivlar eng yaxshi noldan boshlanadigan indekslar diapazonlari bilan ifodalanadi. , degan ma'noni anglatadi ochiq, yarim ochiq va yopiq intervallar haqiqiy raqamlarda bo'lgani kabi. Dijkstra-ning ushbu konvensiyani afzal ko'rish mezonlari shundaki, u bo'sh ketma-ketlikni tabiiy ravishda aks ettiradi (amen < a ?) yopiq "intervallar" dan (amen ≤ (a−1)?), Va tabiiylarning yarim ochiq "intervallari" bilan pastki ketma-ketlikning uzunligi yuqori minus pastki chegaraga teng (amen < b beradi (bauchun mumkin bo'lgan qiymatlar men, bilan a, b, men barcha tabiiy).

Dasturlash tillarida foydalanish

Ushbu foydalanish ko'plab nufuzli dizaynga kiritilgan dizayn tanlovidan kelib chiqadi dasturlash tillari, shu jumladan C, Java va Lisp. Ushbu uchtasida ketma-ketlik turlari (C massivlari, Java massivlari va ro'yxatlar va Lisp ro'yxatlari va vektorlari) nol indeksidan boshlab indekslanadi. Xususan, massivlar bilan chambarchas bog'langan C da ko'rsatgich arifmetikasi, bu soddalashtirilgan dasturni amalga oshiradi: pastki satr qatorning boshlang'ich pozitsiyasidan kelib chiqadi, shuning uchun birinchi element nolga tenglashadi.

Xotiraga manzil va ofset orqali murojaat qilish to'g'ridan-to'g'ri ifodalanadi kompyuter texnikasi deyarli barcha kompyuter arxitekturalarida, shuning uchun C dagi ushbu dizayn detallari ba'zi inson omillari hisobiga kompilyatsiyani osonlashtiradi. Shu nuqtai nazardan, "zerot" ni tartib sifatida ishlatish qat'iy to'g'ri emas, balki bu kasbda keng tarqalgan odatdir. Kabi boshqa dasturlash tillari Fortran yoki COBOL, bitta qatordan boshlanadigan qator obunalariga ega bo'ling, chunki ular shunday degani edi yuqori darajadagi dasturlash tillari va shuning uchun ular odatdagidek yozishmalarga ega bo'lishlari kerak edi tartib raqamlari oldindan nol ixtirosi uzoq vaqt davomida.

Paskal massivning diapazoni har qanday tartibli turda bo'lishiga imkon beradi (shu qatorda sanab o'tilgan turlari). APL dasturiy ta'minot davomida indeksning kelib chiqishini 0 yoki 1 ga o'rnatishga imkon beradi.[6][7] Kabi ba'zi so'nggi tillar, masalan Lua va Visual Basic, xuddi shu sabab bilan bir xil konventsiyani qabul qildilar.

Nol - bu eng past belgisiz tamsayı qiymati, dasturlash va apparat dizaynidagi eng asosiy turlardan biri. Informatika fanida, nol shuning uchun ko'pincha ko'p sonli raqamlar uchun asosiy holat sifatida ishlatiladi rekursiya. Informatikada isbot va boshqa matematik fikrlash ko'pincha noldan boshlanadi. Shu sabablarga ko'ra kompyuter fanida bitta emas, balki noldan raqamlash odatiy hol emas.

Hackerlar va kompyuter olimlari ko'pincha nashrning birinchi bobini "0-bob" deb atashni yaxshi ko'rishadi, ayniqsa, u kirish xususiyatiga ega bo'lsa. Klassik misollardan biri Birinchi nashrida bo'lgan K&R. So'nggi yillarda bu xususiyat ko'pchilik orasida ham kuzatilmoqda sof matematiklar, bu erda ko'plab qurilishlar 0 dan raqamlanishi aniqlangan.

Agar tsiklni ifodalash uchun massiv ishlatilsa, indeksni a bilan olish qulay modul funktsiyasi, bu nolga olib kelishi mumkin.

Raqamli xususiyatlar

Nolga asoslangan raqamlash bilan oraliq yarim ochiq deb ifodalanishi mumkin oraliq, [0,n), yopiq intervaldan farqli o'laroq, [1,n]. Algoritmlarda tez-tez uchraydigan bo'sh diapazonlar [1,0] kabi tutashgan konvensiyalarga murojaat qilmasdan yopiq interval bilan ifodalash juda qiyin. Ushbu xususiyat tufayli nolga asoslangan indekslash kamayadi birma-bir va panjara xatolari.[5] Boshqa tomondan, takroriy hisoblash n 0 dan to gacha hisoblashdan foydalanib, oldindan hisoblab chiqiladi n-1 (shu jumladan) kamroq intuitiv. Ba'zi mualliflar bitta asosda indekslashni afzal ko'rishadi, chunki bu boshqa kontekstda sub'ektlarning qanday indekslanishiga to'g'ri keladi.[8]

Ushbu konvensiyaning yana bir xususiyati modulli arifmetik zamonaviy kompyuterlarda amalga oshirilgandek. Odatda modul funktsiyasi har qanday tamsayı modulini xaritada aks ettiradi N raqamlardan biriga 0, 1, 2, ..., N − 1, qayerda N ≥ 1. Shu sababli, algoritmlardagi ko'plab formulalar (masalan, xash jadvalining indekslarini hisoblash uchun) qator indekslari noldan boshlanganda modul operatsiyasidan foydalangan holda kodda oqlangan tarzda ifodalanishi mumkin.

Ko'rsatkich operatsiyalari yuqorida aytib o'tilgan asosiy manzil / ofset mantig'i tufayli nolga asoslangan indeksda yanada oqlangan tarzda ifodalanishi mumkin. Tasavvur qilish uchun, deylik a bo'ladi xotira manzili massivning birinchi elementi va men kerakli elementning indeksidir. Kerakli element manzilini hisoblash uchun, agar indeks raqamlari 1 dan hisoblansa, kerakli manzil quyidagi ifoda bilan hisoblab chiqiladi:

a + s × (men − 1)

qayerda s har bir elementning kattaligi. Aksincha, agar indeks raqamlari 0 dan hisoblansa, ifoda quyidagicha bo'ladi:

a + s × men

Ushbu sodda ifodani hisoblash samaraliroq ishlash vaqti.

Biroq, massivlarni 1dan indeksatsiya qilishni istagan til har bir massiv manzili ko'rsatadigan konvensiyani qabul qilishi mumkin a′ = as; ya'ni birinchi massiv elementi manzilidan foydalanish o'rniga, bunday til birinchi haqiqiy elementdan oldin joylashgan xayoliy element manzilidan foydalanadi. 1 asosidagi indeks uchun indeksatsiya ifodasi quyidagicha bo'ladi:

a′ + s × men

Demak, nolga asoslangan indekslashning ishlash vaqtidagi samaradorlik foydasi o'ziga xos emas, balki xayoliy nol elementning manzili emas, balki birinchi elementining manzili bilan massivni namoyish etish to'g'risidagi qarorning artefaktidir. Biroq, bu xayoliy elementning manzili, masalan, qatorga aloqador bo'lmagan boshqa biron bir narsaning manzili bo'lishi mumkin.

Yuzaki ravishda, xayoliy element ko'p o'lchovli massivlarga mos kelmaydi. Ko'p o'lchovli massivlarni noldan indeksatsiya qilish, chiziqli manzil maydoniga soddalashtirilgan (tutashgan) konversiyani (sistematik ravishda bir indeksni ikkinchisidan keyin o'zgarib turadi) bitta indekslashdan ko'ra sodda ko'rinishga olib keladi. Masalan, uch o'lchovli massivni xaritalashda chiziqli qatorga L [M⋅N⋅P], ikkalasi ham M⋅N⋅P elementlar, indeks r bilan ma'lum bir elementga kirish uchun chiziqli qatorda L [r] = A [z][y][x] nolga asoslangan indekslashda, ya'ni [0 ≤ x < P], [0 ≤ y < N], [0 ≤ z < M] va [0 ≤ r < M⋅N⋅P], tomonidan hisoblanadi r = zMN + yM + x. Barcha massivlarni 1 asosidagi indekslar bilan tartibga solish ([1 ≤) x ′P], [1 ≤ yN], [1 ≤ z ′M], [1 ≤ r ′M⋅N⋅P]) va elementlarning o'xshash tartibini nazarda tutgan holda beradi r ′ = (z ′ − 1)⋅MN + (y − 1)⋅M + (x ′ − 0) munozarali ravishda yanada murakkabroq ko'rinadigan bir xil elementga kirish uchun. Albatta, r ' = r + 1, beri [z = z ′ – 1], [y = y – 1], va [x = x ′ – 1]. Oddiy va kundalik hayotiy misol pozitsion yozuv bu nol ixtirosi imkon berdi. Pozitsion yozuvda o'nlab, yuzlab, minglab va boshqa barcha raqamlar noldan boshlanadi, faqat birliklar bittadan boshlanadi.[9]

  • Nol- indekslar
    x
    y
    012....89
    00001020809
    11011121819
    22021222829
    ..
    ..
    88081828889
    99091929899
    Jadval tarkibi indeksni ifodalaydi r
  •    
  • Bittasi- indekslar
    x '
    y '
    123....910
    10102030910
    21112131920
    32122232930
    ..
    ..
    98182838990
    1091929399100
    Jadval tarkibi indeksni ifodalaydi r ′

Ushbu holat terminologiyada biroz chalkashliklarga olib kelishi mumkin. Nolga asoslangan indeksatsiya sxemasida birinchi element "element raqami nol"; xuddi shunday, o'n ikkinchi element "element o'n birinchi element". Shuning uchun tartib sonlardan raqamlangan ob'ektlar miqdoriga o'xshashlik paydo bo'ladi; ning eng yuqori ko'rsatkichi n ob'ektlar bo'ladi n − 1 va bu degani nth element. Shu sababli, birinchi element ba'zan deb nomlanadi zerot chalkashliklarga yo'l qo'ymaslik uchun element.

Ilm-fan

Yilda matematika, ko'p sonli ketma-ketliklar yoki polinomlar manfiy bo'lmagan tamsayılar bilan indekslanadi, masalan Bernulli raqamlari va Qo'ng'iroq raqamlari.

Ikkalasida ham mexanika va statistika, nol lahza jismoniy holatida umumiy massani ifodalovchi aniqlanadi zichlik, yoki umumiy ehtimollik, ya'ni bitta, a uchun ehtimollik taqsimoti.

The termodinamikaning nolinchi qonuni birinchi, ikkinchi va uchinchi qonunlardan keyin ishlab chiqilgan, ammo asosiy deb hisoblangan, shuning uchun uning nomi.

Biologiyada organizm "hech narsaga niyat qilmasligini" ko'rsatsa, nol tartibli qasddan bo'ladi deyiladi. Bunga organizmning genetik jihatdan oldindan aniqlangan fenotipi fitnesning foydasini keltirib chiqaradigan holat kiradi, chunki u o'z genlarini ifoda etishni "niyat qilmagan".[10] Xuddi shu ma'noda, kompyuterni bu nuqtai nazardan nol tartibli qasddan mavjud bo'lgan deb hisoblash mumkin, chunki u ishlayotgan dasturlarning kodini ifoda etishni "niyat qilmaydi".[11]

Biologik yoki tibbiy tajribalarda eksperimental vaqt o'tmasdan oldin o'tkazilgan dastlabki o'lchovlar tajribaning 0-kuni deb aytiladi.

Genomikada genom koordinatalari uchun 0 ga asoslangan va 1 ga asoslangan tizimlar qo'llaniladi.

Bemor nol (yoki) indeks ishi ) boshlang'ich hisoblanadi sabrli ichida aholi namunasi ning epidemiologik tergov.

Boshqa sohalar

The yil nol keng qo'llaniladigan mavjud emas Gregorian taqvimi yoki avvalgisida Julian taqvimi. Ushbu tizimlar bo'yicha, yil Miloddan avvalgi 1-asr ortidan AD 1. Biroq, bir yil ichida nol bor astronomik yillarni raqamlash (bu erda miloddan avvalgi 1-Julian yiliga to'g'ri keladi) va ISO 8601: 2004 (bu erda miloddan avvalgi 1-Gregoryen yiliga to'g'ri keladi) va umuman olganda Buddist va Hind taqvimlari.

Ko'pgina mamlakatlarda pastki qavat binolarda "1-qavat" emas, balki 0 raqamli qavat sifatida qaraladi, odatda Amerika Qo'shma Shtatlarida joylashgan nomlash konvensiyasi. Bu salbiy raqamlar bilan belgilangan er osti qavatlari bilan izchil to'plamni yaratadi.

0 tartibida asosan matematika, fizika va informatika bilan bevosita bog'liq bo'lgan jamoalarda foydalanish mavjud bo'lsa, klassik musiqada ham misollar mavjud. Bastakor Anton Brukner uning erta deb hisoblagan D minorda simfoniya u o'z asarlarining kanoniga kiritishga loyiq emas va u "yaroqsiz nixt" ni skorda va to'siq bilan doira bilan yozib, "yaroqsiz" degan ma'noni anglatadi. Ammo vafotidan keyin bu asar nomi bilan tanilgan D minorda 0-sonli simfoniya, aslida keyin yozilgan bo'lsa ham Minorali №1 simfoniya. Bundan ham oldinroq bor F minorda simfoniya ba'zan chaqiriladigan Bryuknernikidan № 00. Rus bastakori Alfred Shnittke Shuningdek, a 0-sonli simfoniya.

Ba'zi universitetlarda, shu jumladan Oksford va Kembrijda "0 hafta" yoki vaqti-vaqti bilan "hech qanday hafta" ma'ruzalarning birinchi haftasidan oldingi haftani bir davrda anglatadi. Avstraliyada, ba'zi universitetlar buni "O hafta" deb atashadi, bu esa so'zma-so'z bo'lib xizmat qiladi "orientatsiya haftasi "Shu bilan bir qatorda, universitet o'quv yurtlarida kirish haftaligi Shvetsiya odatda "nollning" (nollash) deb nomlanadi.

The Amerika Qo'shma Shtatlari havo kuchlari har chorshanba kuni asosiy mashg'ulotlarni boshlaydi va birinchi hafta (sakkiztadan) keyingi yakshanbadan boshlanadi. O'sha yakshanbadan to'rt kun oldin ko'pincha "Nolinchi hafta" deb nomlanadi.

24 soatlik soat va xalqaro standart ISO 8601 kunning birinchi (nol) soatini belgilash uchun 0 dan foydalaning.

King's Cross stantsiyasi Londonda, Edinburg Haymarket va stantsiyalar Uppsala, Yonago, Stockport va Kardiff bor Platforma 0.

Robert Crumb ning birinchi soni uchun chizmalar Zap Comix o'g'irlangan, shuning uchun u 1-son sifatida nashr etilgan yangi sonini chiqardi. Keyinchalik u o'g'irlangan asarning nusxalarini qayta imzoladi va 0-son sifatida nashr etdi.

The Bryussel halqasi Belgiyada yo'l R0 bilan raqamlangan. U atrofdagi halqa yo'lidan keyin qurilgan Antverpen, ammo Bryussel (poytaxt shahar) oddiyroq raqamga loyiq deb topildi. Xuddi shunday (tugallanmagan) orbital avtomagistral Budapesht Vengriyada deyiladi M0.

Ba'zan noldan foydalaniladi ko'cha manzillarida, ayniqsa, juft raqamlar ko'chaning bir tomoni, ikkinchisida esa toq raqamlar bo'lgan sxemalarda. Bunga misol sifatida tarixiy belgi keltirilgan Xristos cherkovi Kembrij kuni Kembrij, Massachusets "s Garvard maydoni, uning manzili 0 Bog 'ko'chasi.

Formula-1da amaldagi jahon chempioni keyingi mavsumda ishtirok etmasa, 1-raqam hech qanday haydovchiga berilmaydi, lekin jahon chempioni jamoasining bitta haydovchisi 0 raqamini, ikkinchisi esa 2-raqamini olib yuradi. 1993 yilda va 1994 yilda sodir bo'lgan. Demon Xill har ikki mavsumda 0 raqamini olgan, chunki amaldagi chempion Nayjel Mansel 1992 yildan keyin va amaldagi chempion Alen Prost 1993 yildan keyin iste'foga chiqqan.

Ketma-ket xronologik prekvels 0 ga teng bo'lishi mumkin, masalan Ring 0: Tug'ilgan kun yoki Zork nol.

The Shveytsariya Federal temir yo'llari harakatlanuvchi tarkibning ma'lum sinflarini noldan, masalan, Qayta tiklash 460 000 dan 118 gacha.

Badiiy adabiyot sohasida, Ishoq Asimov oxir-oqibat unga Zerot qonuni qo'shildi Robot texnikasining uchta qonuni, mohiyatan ularni to'rtta qonun qilish.

Shuningdek qarang

Adabiyotlar

  1. ^ M. Seed, Graham (1965). Kompyuter grafikalarida dasturlar bilan C ++ da ob'ektga yo'naltirilgan dasturlash haqida ma'lumot (2-nashr). Britaniya kutubxonasi: Springer. p. 391. ISBN  1852334509. Olingan 11 fevral 2020.
  2. ^ Martin Richards (1967). BCPL ma'lumotnomasi (PDF). Massachusets texnologiya instituti. p. 11.
  3. ^ a b v Mayk Xoy. "Iqtibos kerak". Olingan 28 yanvar 2014.
  4. ^ Tom Van Vlek (1995). "IBM 7094 va CTSS". Olingan 28 yanvar 2014.
  5. ^ a b Dijkstra, Edsger Vayb (2008 yil 2-may). "Nima uchun raqamlashni noldan boshlash kerak (EWD 831)". E. W. Dijkstra arxivi. Ostindagi Texas universiteti. Olingan 2011-03-16.
  6. ^ Braun, Jim (1978 yil dekabr). "Indeksning kelib chiqishini himoya qilishda 0". ACM SIGAPL APL Quote Quad. 9 (2): 7. doi:10.1145/586050.586053. S2CID  40187000.
  7. ^ Xui, Rojer. "Index Origin 0 to'siqmi?". jsoftware.com. JSoftware. Olingan 19 yanvar 2015.
  8. ^ Donis Marshal tomonidan Microsoft® Visual C # ® 2005 dasturlash
  9. ^ Sal Xon. Matematika 1-sinf / Joy qiymati / raqamlar panjarasi. Xon akademiyasi. Olingan 28 iyul, 2018. Youtube sarlavhasi: Raqamlar paneli / Hisoblash / Erta matematik / Khan Academy
  10. ^ Byrne, Richard V. "Tafakkur qiluvchi maymun: aqlning evolyutsion kelib chiqishi". Olingan 2010-05-18.
  11. ^ Dunbar, Robin. "Inson hikoyasi - insoniyat evolyutsiyasining yangi tarixi". Olingan 2010-05-18.