>> Rob BOWDEN: Hi, mimi nina Rob.
Na natumaini wewe ni kushtakiwa kwa ajili ya mikopo.
Kitu hivyo kwanza tunahitaji kufanya ni kuomba kadi
idadi kutoka kwa mtumiaji.
Hapa, sisi ni kutumia getLongLong.
Unaweza pia kutumika GetString, lakini katika kesi hiyo, d haja ya kuangalia
kuwa kulikuwa hakuna mashirika yasiyo ya numeric wahusika katika kamba.
Hivyo tutaweza kutumia getLongLong.
>> Kumbuka kwamba huwezi kutumia kitu kama GetInt, tangu idadi itakuwa
kubwa mno na kifafa katika integer.
Mara baada ya sisi kuwa na idadi hiyo, sisi kuona hapa kitanzi hii wakati.
Hivyo hii kitanzi wakati inatekeleza Algorithm Luhn ya kwamba
kuona katika pset spec.
>> Na ni kweli kwenda kuwa kidogo wajanja.
Hivyo katika pset spec, taarifa kwamba Hatua moja na wawili tofauti.
Sisi kwanza kwenda juu kadi nzima mikopo posta, kuangalia kwa kila mengine
tabia ya kuanzia pili kwa tabia ya mwisho, na kuzidisha yao
na kuongeza tarakimu wote.
Kisha baada ya kuwa, sisi kuongeza katika yote ya tarakimu nyingine.
>> Hivyo badala ya kufanya wale viwili hatua tofauti, tunakwenda kuchanganya
yao katika moja iteration juu ya nzima kadi namba.
Hapa, tunaona int cur tarakimu usawa kadi namba, mod 10.
Kadi namba ni nini mod 10 kufanya?
Ni anatupa tarakimu ya mwisho idadi nzima.
Basi kumbuka kwamba kama sisi kugawanywa idadi up na 10, basi salio
itakuwa chochote kile tarakimu ya mwisho ni.
23 kugawanywa na 10, salio kuwa 3.
>> Hivyo tarakimu ya mwisho, sasa hapa, tunaona sisi ni matawi juu ya mult kwa 2.
Basi nini tunakwenda kutumia mult na 2 kwa ni kutofautisha kati ya
moja ya "kila idadi nyingine kutoka pili tarakimu "idadi.
Mult na 2 ni kwenda kuanza nje kama uongo, tangu tarakimu ya mwisho hawapaswi
kuchukuliwa kutoka pili kwa mwisho tarakimu.
>> Hivyo basi mwishoni mwa hii kwa kitanzi, sisi kuona kwamba tunakwenda kubadili hali hii
kutoka kwenye uongo kwa kweli.
On iteration ya pili ya kwa kitanzi, itakuja kuchukuliwa kweli mpaka
mwisho, wakati sisi mabadiliko kutoka kweli na uongo.
Kwa sababu basi tutaweza kuwa juu ya theluthi moja kwa tarakimu ya mwisho, ambayo si moja ya
tarakimu kwamba tunapaswa kuzidisha kwa 2.
>> Hivyo kama sisi kutokea kwa kuwa juu ya mmoja wa wale tarakimu kwamba tunataka kuzidisha kwa 2,
tunaona sisi ni kuongeza kwa checksum yetu.
Na hapa, sisi ni kutumia ternary operator kwa mara moja
tena kuwa kidogo wajanja.
Hivyo kama cur tarakimu ni chini ya 5, kisha tunaweza tu kufanya cur tarakimu mara 2.
Hiyo ni rahisi.
Kama ni 1, basi tunataka kuongeza 2.
Kama ni 2, tunataka kuongeza 4.
Kama ni 4, tunataka kuongeza 8.
>> Basi nini maalum kuhusu 5?
Naam, mara 5 2 ni 10.
Na kukumbuka kutoka pset spec kwamba tunataka kuongeza tarakimu ya
mara namba 2, na si mara namba 2 yenyewe.
Hivyo kama idadi ya awali ni 7, 7 mara 2 ni 14.
Tunataka kuongeza 1 pamoja na 4 idadi, si 14.
>> Hivyo hapa, kama idadi ni 5 au zaidi, nini sisi ni kufanya ni cur tarakimu
mara 2 minus 9.
Na kama unafikiri juu ya kwamba, Mara 5 2 ni 10.
Na hivyo sisi ni kuongeza 1, ambayo ni 10 minus 9.
Na mara 6 2 ni 12.
Hivyo sisi ni kuongeza 3, ambayo ni 12 minus 9.
Na kwamba kazi kwa namba zote.
>> Hivyo kwamba ni nini sisi ni kuongeza kwa checksum yetu.
Na mwingine hii ni nini utunzaji Hatua ya Mbili za Luhn ya algorithm, ambayo ni haki
kuongeza tarakimu kama haina kutokea kuwa moja ya kila tarakimu nyingine.
Hivyo mara tuna kwamba, hii ni kuweka wimbo wa kwanza wahusika wawili ya
kadi namba, mbili za kwanza tarakimu, tangu sisi ni hatimaye kwenda
kutaka kutumia chini hapa kuthibitisha, yote ya haki, Visa ina kuanza
na hii, na mahitaji ya American Express kuanza na hii, na kadhalika.
>> Hatimaye, sisi kufanya kadi idadi sawa na kadi
Idadi ya kugawanywa na 10.
Kwa nini sisi kufanya hivyo?
Naam, sisi tu kubebwa tarakimu ya mwisho.
Kugawa na 10 kuhama idadi nzima juu.
Hivyo sasa wakati sisi kitanzi nyuma, sisi ni kwenda kuwa utunzaji
pili kwa mwisho tarakimu.
Kisha wakati sisi hit hii tena, tunakwenda kukata pili kwa mara ya mwisho
tarakimu, kitanzi nyuma, na kushughulikia tatu kwa mara ya mwisho tarakimu, na kadhalika, mpaka
idadi fika 0, ambapo kiwango sisi kuvunja nje ya kitanzi wakati.
>> Sisi ni pia kuweka wimbo wa mikopo kadi namba urefu, tangu kwamba
muhimu kutofautisha iwapo ni kadi halali ya mkopo idadi.
Basi sasa, mara moja tumekuwa mahesabu checksum, tunaweza kuamua kama
ni kadi halali.
checksum mod 10 ni sehemu ya algorithm Luhn ya.
Kama checksum mod 10 anarudi kitu mashirika yasiyo ya sifuri, basi hii itakuwa kurudi kweli,
katika kesi ambayo, idadi lazima batili.
>> Vinginevyo, kama checksum mod 10 ni 0, basi tunaweza kuendelea.
Hii kubwa mwingine kama ni kusema, kama kwanza tarakimu mbili ni sawa na AMEX 1,
ambapo hadi hapa, tunaona kwamba AMEX 1, kama kwa spec, ni 34.
Na tutaweza pia kulinganisha kwa AMEX 2, ambayo ni 37.
Na kadi namba urefu ni sawa na American inatarajiwa Express
kadi urefu, basi tunaweza magazeti American Express.
>> Tutaweza kufanya kitu sawa na Visa.
tarakimu mbili za kwanza haja ya kuwa na zaidi kuliko au sawa na 40, au chini ya
kuliko au sawa na 49.
Wale kuwakilisha kadi halali Visa.
Na urefu mahitaji ya kuwa sawa na Visa Length 1 au Visa Length 2.
Na hivyo urefu lazima aidha 13 au 16 tarakimu kwa muda mrefu.
>> Na hatimaye kwa MasterCard, ni sawa na Visa, kwamba mbili za kwanza
tarakimu haja ya kuwa katika baadhi ya mbalimbali, na urefu lazima
kuwa na hasa 16 tarakimu.
Hivyo kama yoyote ya kesi hizo kushikilia, kisha katika kesi ya kwanza, tutaweza magazeti AMEX.
Kama kesi hii ana, tutaweza magazeti Visa.
Kama kesi hii ana, tutaweza magazeti MasterCard.
>> Lakini kama hakuna wale kushikilia, hata kama checksum ilikuwa halali,
sisi bado magazeti batili.
Kwa sababu si moja ya wale aina ya kadi.
Jina langu ni Rob, na natumaini kupatikana mikopo ya kuvutia.