>> ROB BOWDEN: Hi, Im 'Rob.
Ac yr wyf yn gobeithio y byddwch yn eich cyhuddo ar gyfer credyd.
Beth felly yn gyntaf mae angen i ni ei wneud yn gofyn am y cerdyn credyd
nifer o'r defnyddwyr.
Yma, rydym yn defnyddio getLongLong.
Gallech hefyd wedi defnyddio getString, ond yn yr achos hwnnw, byddai angen i chi i wirio
nad oedd unrhyw anrhifol gymeriadau yn y llinyn.
Felly, byddwn yn defnyddio getLongLong.
>> Cofiwch na allwch ddefnyddio rhywbeth fel getInt, gan fod y nifer a fydd yn
rhy fawr i ffitio mewn gyfanrif.
Unwaith y byddwn wedi y rhif hwnnw, yr ydym yn gweld fan hon y dolen amser.
Felly, mae hyn dolen tra yn gweithredu Algorithm Luhn bod chi
weld yn y fanyleb pset.
>> Ac mae'n mynd mewn gwirionedd i fod ychydig yn glyfar.
Felly, yn y fanyleb pset, yn sylwi bod Camau Un a Dau ar wahân.
Rydym yn gyntaf yn mynd dros y cerdyn credyd cyfan nifer, yn chwilio am bob eraill
cymeriad gan ddechrau o'r ail cymeriad diwethaf, a'u lluosi
ac ychwanegu holl digid.
Yna, ar ôl hynny, rydym yn ychwanegu mewn pob un o'r digidau eraill.
>> Felly, yn hytrach na gwneud hynny mewn dau camau ar wahân, rydym yn mynd i gyfuno
i mewn i un iteriad dros y rhif cerdyn credyd cyfan.
Yma, rydym yn gweld hafal digid cyf int rhif cerdyn credyd, mod 10.
Beth yw rhif cerdyn credyd mod 10 yn ei wneud?
Mae'n rhoi digid olaf ni yn nifer cyfan.
Felly cofiwch, os ydym yn rhannu'r rhifo i fyny o 10, yna bydd y gweddill
fyddai beth bynnag bod digid olaf yn.
23 wedi'i rannu â 10, mae'r Bydd gweddill fod yn 3.
>> Felly, y digid olaf, yn awr yn y fan hon, rydym yn gweld rydym yn canghennog ar amryfal â 2.
Felly, yr hyn yr ydym yn mynd i gael ei ddefnyddio amryfal 2 amdano yn gwahaniaethu rhwng
un o'r "pob rifau eraill o yr ail digid rhifau ".
Amryfal 2 yn mynd i ddechrau fel ffug, gan fod y digid olaf ni ddylid
yn cael eu hystyried gan y ail digid diwethaf.
>> Felly, yna ar ddiwedd hyn ar gyfer dolen, rydym yn weld ein bod yn mynd i newid hyn
o ffug wir.
Ar y ailadroddiad nesaf y i ddolen, mae'n mynd i ystyried yn wir hyd nes
y diwedd, pan fyddwn yn newid rhag wir er mwyn ffug.
Oherwydd wedyn byddwn yn ar y trydydd i digid olaf, nad yw'n un o'r
digid y dylem luosi â 2.
>> Felly, os ydym yn digwydd bod yn un o'r rhai a digid yr ydym am eu lluosi â 2,
rydym yn gweld ein bod yn ychwanegu at ein prawfswm.
Ac yma, rydym yn defnyddio'r gweithredwr deiran unwaith
unwaith eto fod ychydig yn glyfar.
Felly, os cyf digid yn llai na 5, yna gallwn dim ond gwneud amseroedd digid cyf 2.
Mae hynny'n syml.
Os yw'n 1, yna rydym am ychwanegu 2.
Os yw'n 2, rydym am ychwanegu 4.
Os yw'n 4, rydym am ychwanegu 8.
>> Felly beth sy'n arbennig am 5?
Wel, 5 gwaith 2 yw 10.
A chofiwch o'r fanyleb pset y rydym eisiau ychwanegu'r digidau y
amseroedd rhif 2, ac nid y amseroedd rhif 2 ei hun.
Felly, os yw'r rhif gwreiddiol yn 7, 7 gwaith 2 14.
Rydym yn awyddus i ychwanegu 1 ynghyd â 4 i nifer, nid yw 14.
>> Felly dyma, os yw'r rhif yn 5 neu fwy, yr hyn rydym yn ei wneud yn digid cyf
amseroedd 2 llai blwch 9.
Ac os ydych yn meddwl am hynny, 5 gwaith 2 yw 10.
Ac felly rydym yn ychwanegu 1, sydd 10 llai blwch 9.
A 6 gwaith 2 12.
Felly, rydym yn ychwanegu 3, sy'n yw 12 minws 9.
Ac mae hynny'n gweithio ar gyfer pob rhif.
>> Felly, dyna beth rydym yn ychwanegu i'n checksum.
Ac arall mae hyn yn beth sy'n trin Cam Mae dau o'r algorithm Luhn, sy'n yn unig
ychwanegu'r digid os nad yw'n digwydd i fod yn un o'r pob digidau eraill.
Felly, ar ôl i ni gael y, mae hyn yn cadw golwg ar y ddau gyntaf cymeriadau o'r
rhif y cerdyn credyd, y ddau gyntaf digidau, gan ein bod yn mynd yn y pen draw
i am ddefnyddio hynny i lawr yma i wirio, iawn, a Visa wedi dechrau
â hyn, ac mae anghenion American Express i ddechrau gyda hyn, ac yn y blaen.
>> Yn olaf, rydym yn ei wneud cerdyn credyd nifer yn dychwelyd cerdyn credyd
nifer wedi'i rannu â 10.
Pam yr ydym yn gwneud hynny?
Wel, rydym yn unig drin y digid olaf.
Bydd rannu â 10 symud y nifer cyfan drosodd.
Felly nawr pan fyddwn dolen yn ôl, rydym yn mynd i gael ei drin y
ail digid diwethaf.
Yna, pan fyddwn yn taro eto, rydym yn mynd i dorri oddi ar y ail bara
digid, cefn dolen, ac yn trin y trydydd i bara digid, ac yn y blaen, hyd nes y bydd
nifer yn cyrraedd 0, a phryd rydym yn torri allan o'r cylch amser.
>> Rydym ni hefyd yn cadw golwg ar y credyd hyd rhif cerdyn, gan fod hynny'n
bwysig gwahaniaethu a yw'n rhif cerdyn credyd dilys.
Felly nawr, ar ôl i ni wedi cyfrifo y checksum, gallwn benderfynu a yw'n
yn gerdyn dilys.
Y mod checksum 10 yn rhan o algorithm Luhn yn.
Os checksum mod 10 yn dychwelyd rhywbeth heb fod yn sero, yna bydd hyn yn dychwelyd yn wir,
ac os felly, y nifer Mae'n rhaid i fod yn annilys.
>> Fel arall, os mod checksum 10 yn 0, yna gallwn barhau.
Mae hyn yn fawr arall os yn ei ddweud, os yw'r cyntaf ddau ddigid yn hafal i Amex 1,
lle i fyny yma, gwelwn fod AMEX 1, yn unol â'r fanyleb, yn 34.
A byddwn hefyd gymharu i Amex 2, sef 37.
Ac mae'r cerdyn credyd hyd rif yw hafal i'r disgwyliedig American Express
hyd gerdyn, yna gallwn argraffu American Express.
>> Byddwn yn gwneud rhywbeth tebyg gyda Visa.
Mae angen y ddau ddigid cyntaf o fod yn fwy na neu'n hafal i 40, neu lai
na neu'n hafal i 49.
Mae'r rhai cynrychioli cardiau Visa dilys.
Ac mae angen i'r hyd i fod yn hafal i Visa Hyd 1 neu Visa Hyd 2.
Ac felly mae'n rhaid i'r hyd fod naill ai 13 neu 16 digid.
>> Ac yn olaf gyda MasterCard, mae'n debyg i Visa, bod y ddau gyntaf
Mae angen digidau fod mewn rhai amrywiaeth, ac mae'n rhaid i'r hyd
fod yn union 16 digid.
Felly, os unrhyw un o'r achosion hynny yn dal, yna yn yr achos cyntaf, byddwn yn argraffu AMEX.
Os yw'r achos hwn yn dal, byddwn yn argraffu Visa.
Os yw'r achos hwn yn dal, byddwn ni argraffu MasterCard.
>> Ond os nad oes un o'r rhai yn dal, hyd yn oed os yw'r checksum yn ddilys,
rydym yn dal i argraffu annilys.
Oherwydd nad yw'n un o mathau hynny o gardiau.
Fy enw i yw Rob, ac yr wyf yn gobeithio y byddwch yn diddorol credyd dod o hyd.