1 00:00:00,000 --> 00:00:13,290 2 00:00:13,290 --> 00:00:14,570 >> ROB สลิง: สวัสดีครับผมร็อบ 3 00:00:14,570 --> 00:00:17,610 และฉันหวังว่าคุณกำลังคิด ขึ้นสำหรับเครดิต 4 00:00:17,610 --> 00:00:20,710 ดังนั้นสิ่งแรกที่เราต้องทำ มีการขอบัตรเครดิต 5 00:00:20,710 --> 00:00:22,710 จำนวนจากผู้ใช้ 6 00:00:22,710 --> 00:00:25,060 ที่นี่เรากำลังใช้ getLongLong 7 00:00:25,060 --> 00:00:29,070 คุณอาจจะได้ใช้ getString แต่ ในกรณีที่คุณจะต้องตรวจสอบ 8 00:00:29,070 --> 00:00:32,340 ว่าไม่มีที่ไม่ใช่ตัวเลข ตัวอักษรในสตริง 9 00:00:32,340 --> 00:00:34,560 ดังนั้นเราจะใช้ getLongLong 10 00:00:34,560 --> 00:00:38,070 >> โปรดจำไว้ว่าคุณไม่สามารถใช้สิ่งที่ เช่น GetInt เนื่องจากจำนวนจะเป็น 11 00:00:38,070 --> 00:00:40,650 มีขนาดใหญ่เกินไปที่จะใส่ในจำนวนเต็ม 12 00:00:40,650 --> 00:00:44,480 เมื่อเรามีตัวเลขที่เรา ดูที่นี่ห่วงขณะนี้ 13 00:00:44,480 --> 00:00:48,210 ดังนั้นห่วงขณะนี้คือการดำเนินการ ขั้นตอนวิธีการ Luhn ที่คุณ 14 00:00:48,210 --> 00:00:50,980 เห็นในสเป็ค pset 15 00:00:50,980 --> 00:00:53,830 >> และก็จริงที่เกิดขึ้น จะเป็นบิตฉลาด 16 00:00:53,830 --> 00:01:00,800 ดังนั้นในสเป็ค pset สังเกตว่า ขั้นตอนที่หนึ่งและสองจะแยก 17 00:01:00,800 --> 00:01:05,160 ครั้งแรกที่เราไปกว่าบัตรเครดิตทั้งหมด จำนวนกำลังมองหาทุกอื่น ๆ 18 00:01:05,160 --> 00:01:09,775 ตัวละครที่เริ่มต้นจากการที่สอง ตัวอักษรตัวสุดท้ายและการคูณพวกเขา 19 00:01:09,775 --> 00:01:11,750 และการเพิ่มตัวเลขทั้งหมด 20 00:01:11,750 --> 00:01:16,150 แล้วหลังจากที่เราเพิ่มใน ทั้งหมดของตัวเลขอื่น ๆ 21 00:01:16,150 --> 00:01:20,660 >> ดังนั้นแทนที่จะทำเช่นผู้ที่อยู่ในสอง ขั้นตอนที่แยกจากกันเราจะรวม 22 00:01:20,660 --> 00:01:24,430 พวกเขาเป็นหนึ่งในการย้ำกว่า หมายเลขบัตรเครดิตทั้งหมด 23 00:01:24,430 --> 00:01:29,710 ที่นี่เราจะเห็น int เท่ากับหลักป หมายเลขบัตรเครดิต mod 10 24 00:01:29,710 --> 00:01:32,050 คืออะไรหมายเลขบัตรเครดิต mod 10 ทำอะไร 25 00:01:32,050 --> 00:01:35,750 มันทำให้เรามีหลักสุดท้าย ในจำนวนทั้งหมด 26 00:01:35,750 --> 00:01:39,340 ดังนั้นอย่าลืมว่าถ้าเราแบ่ง จำนวนถึง 10 แล้วส่วนที่เหลือ 27 00:01:39,340 --> 00:01:42,180 จะเป็นสิ่งที่หลักสุดท้ายคือ 28 00:01:42,180 --> 00:01:46,560 23 หารด้วย 10 ส่วนที่เหลือจะเป็น 3 29 00:01:46,560 --> 00:01:53,760 >> ดังนั้นหลักที่ผ่านมาตอนนี้ที่นี่เราจะเห็น เรากำลังแยกบน mult 2 30 00:01:53,760 --> 00:01:57,630 ดังนั้นสิ่งที่เรากำลังจะใช้ mult 2 เพื่อเป็นความแตกต่างระหว่าง 31 00:01:57,630 --> 00:02:02,110 หนึ่งใน "ทุกหมายเลขอื่น ๆ จาก ตัวเลขสองหลัก " 32 00:02:02,110 --> 00:02:08,310 mult 2 จะเริ่มออกเป็น เท็จตั้งแต่หลักสุดท้ายไม่ควร 33 00:02:08,310 --> 00:02:11,750 ได้รับการพิจารณาจาก สองหลักสุดท้าย 34 00:02:11,750 --> 00:02:16,760 >> ดังนั้นแล้วในตอนท้ายของเรื่องนี้สำหรับวงเรา เห็นว่าเรากำลังจะมีการเปลี่ยนแปลงนี้ 35 00:02:16,760 --> 00:02:18,870 จากเท็จให้เป็นจริง 36 00:02:18,870 --> 00:02:22,520 ในการย้ำต่อไปของห่วงสำหรับที่ ก็จะถือว่าเป็นความจริงจน 37 00:02:22,520 --> 00:02:25,090 ท้ายที่สุดเมื่อเราเปลี่ยน มันมาจากความจริงเป็นเท็จ 38 00:02:25,090 --> 00:02:28,290 แล้วเพราะเราจะอยู่บนที่สาม หลักสุดท้ายซึ่งไม่ได้เป็นหนึ่งใน 39 00:02:28,290 --> 00:02:32,210 ตัวเลขที่เราควรจะคูณด้วย 2 40 00:02:32,210 --> 00:02:37,410 >> ดังนั้นถ้าเราเกิดขึ้นจะอยู่ในหนึ่งในบรรดา ตัวเลขที่เราต้องการที่จะคูณด้วย 2 41 00:02:37,410 --> 00:02:40,610 เราเห็นเรากำลังเพิ่มการตรวจสอบของเรา 42 00:02:40,610 --> 00:02:43,640 และที่นี่เรากำลังใช้ ประกอบ ternary อีก 43 00:02:43,640 --> 00:02:45,470 อีกครั้งเป็นบิตฉลาด 44 00:02:45,470 --> 00:02:50,170 ดังนั้นหากปหลักเป็นน้อยกว่า 5 แล้ว เราก็สามารถทำครั้งที่ 2 หลักป 45 00:02:50,170 --> 00:02:50,690 ที่ง่าย 46 00:02:50,690 --> 00:02:52,770 ถ้าเป็น 1 แล้วเราต้องการที่จะเพิ่ม 2 47 00:02:52,770 --> 00:02:54,090 ถ้าเป็น 2 เราต้องการเพิ่ม 4 48 00:02:54,090 --> 00:02:55,530 ถ้าเป็น 4 เราต้องการที่จะเพิ่ม 8 49 00:02:55,530 --> 00:02:57,400 >> ดังนั้นสิ่งที่พิเศษเกี่ยวกับ 5? 50 00:02:57,400 --> 00:03:00,290 ดี, 5 ครั้งที่ 2 คือ 10 51 00:03:00,290 --> 00:03:05,920 และจำไว้ว่าจากข้อมูลจำเพาะ pset ที่ เราต้องการที่จะเพิ่มตัวเลขของ 52 00:03:05,920 --> 00:03:09,300 จำนวน 2 ครั้งและไม่ 2 เท่าของจำนวนตัวเอง 53 00:03:09,300 --> 00:03:13,920 ดังนั้นถ้าจำนวนเดิม ที่ 7, 7 ครั้งที่ 2 14 54 00:03:13,920 --> 00:03:18,930 เราต้องการที่จะเพิ่ม 1 บวก 4 จำนวนไม่ 14 55 00:03:18,930 --> 00:03:24,050 >> ดังนั้นที่นี่ถ้าจำนวนคือ 5 หรือมากกว่า สิ่งที่เรากำลังทำคือการปหลัก 56 00:03:24,050 --> 00:03:26,470 ครั้งที่ 2 ลบ 9 57 00:03:26,470 --> 00:03:29,940 และถ้าคุณคิดเกี่ยวกับเรื่องนั้น 5 ครั้งที่ 2 คือ 10 58 00:03:29,940 --> 00:03:33,130 และเพื่อให้เรากำลังเพิ่ม 1 ซึ่งเป็น 10 ลบ 9 59 00:03:33,130 --> 00:03:35,490 และ 6 ครั้งที่ 2 12 60 00:03:35,490 --> 00:03:38,380 ดังนั้นเราจึงกำลังเพิ่ม 3 ซึ่ง 12 ลบ 9 61 00:03:38,380 --> 00:03:40,250 และที่ทำงานสำหรับตัวเลขทั้งหมด 62 00:03:40,250 --> 00:03:43,330 >> ดังนั้นนั่นคือสิ่งที่เรากำลังเพิ่ม การตรวจสอบของเรา 63 00:03:43,330 --> 00:03:49,970 และอื่น ๆ นี้เป็นสิ่งที่การจัดการขั้นตอนที่ สอง Luhn ของขั้นตอนวิธีการซึ่งเป็นเพียง 64 00:03:49,970 --> 00:03:55,010 เพิ่มหลักถ้ามันไม่ได้เกิดขึ้น จะเป็นหนึ่งในทุกหลักอื่น ๆ 65 00:03:55,010 --> 00:04:01,440 ดังนั้นเมื่อเรามีที่นี้จะทำให้ ติดตามเป็นครั้งแรกที่สองอักขระของ 66 00:04:01,440 --> 00:04:05,220 หมายเลขบัตรเครดิตเป็นครั้งแรกที่สอง หลักเนื่องจากเรากำลังไปในที่สุด 67 00:04:05,220 --> 00:04:08,980 ต้องการใช้ที่ลงที่นี่เพื่อตรวจสอบ ทั้งหมดต้องขอวีซ่ามีการเริ่มต้น 68 00:04:08,980 --> 00:04:14,440 กับเรื่องนี้และความต้องการของอเมริกันเอ็กซ์เพรส ที่จะเริ่มต้นกับเรื่องนี้และอื่น ๆ 69 00:04:14,440 --> 00:04:16,850 >> สุดท้ายเราทำบัตรเครดิต จำนวนเท่ากับบัตรเครดิต 70 00:04:16,850 --> 00:04:18,730 จำนวนหารด้วย 10 71 00:04:18,730 --> 00:04:19,829 เราจะทำทำไมที่ 72 00:04:19,829 --> 00:04:22,070 ดีเราเพียงแค่การจัดการหลักสุดท้าย 73 00:04:22,070 --> 00:04:24,880 หารด้วย 10 จะเปลี่ยน จำนวนทั้งหมดกว่า 74 00:04:24,880 --> 00:04:27,150 ดังนั้นตอนนี้เมื่อเรากลับห่วงเรา จะได้รับการจัดการ 75 00:04:27,150 --> 00:04:28,540 สองหลักสุดท้าย 76 00:04:28,540 --> 00:04:31,060 จากนั้นเมื่อเรากดปุ่มนี้อีกครั้งที่เรากำลังจะ จะตัดที่สองสุดท้าย 77 00:04:31,060 --> 00:04:35,060 หลักห่วงกลับและการจัดการที่สาม จะมีอายุการใช้หลักและอื่น ๆ จน 78 00:04:35,060 --> 00:04:40,120 จำนวนถึง 0 ที่จุดที่ เราแยกออกจากวงในขณะที่ 79 00:04:40,120 --> 00:04:43,560 >> เรายังติดตามความเคลื่อนไหวของเครดิต ระยะเวลาในหมายเลขบัตรตั้งแต่ที่ 80 00:04:43,560 --> 00:04:48,440 สิ่งสำคัญที่จะเห็นความแตกต่างไม่ว่าจะเป็น หมายเลขบัตรเครดิตที่ถูกต้อง 81 00:04:48,440 --> 00:04:53,560 ดังนั้นตอนนี้เมื่อเราคำนวณ การตรวจสอบเราสามารถตรวจสอบว่า 82 00:04:53,560 --> 00:04:55,180 เป็นบัตรที่ถูกต้อง 83 00:04:55,180 --> 00:04:58,010 ตรวจสอบ mod 10 เป็นส่วนหนึ่ง ของขั้นตอนวิธี Luhn ของ 84 00:04:58,010 --> 00:05:03,360 หากสิ่งที่ตรวจสอบ mod 10 ผลตอบแทน ไม่ใช่ศูนย์แล้วนี้จะกลับมาจริง 85 00:05:03,360 --> 00:05:06,650 ซึ่งในกรณีนี้จำนวน จะต้องไม่ถูกต้อง 86 00:05:06,650 --> 00:05:12,590 >> มิฉะนั้นถ้าการตรวจสอบ mod 10 เป็น 0 แล้วเราสามารถดำเนินการต่อ 87 00:05:12,590 --> 00:05:18,360 นี้ใหญ่อื่นถ้าบอกว่าถ้าเป็นครั้งแรก ตัวเลขสองหลักเท่ากับ AMEX 1 88 00:05:18,360 --> 00:05:23,640 ที่นี่เราจะเห็นว่า AMEX 1 ตามสเป็ค, 34 89 00:05:23,640 --> 00:05:26,595 และเรายังจะเปรียบเทียบ การ AMEX 2 ซึ่งเป็น 37 90 00:05:26,595 --> 00:05:30,360 91 00:05:30,360 --> 00:05:34,210 และความยาวของหมายเลขบัตรเครดิต เท่ากับที่คาดหวังของอเมริกันเอ็กซ์เพรส 92 00:05:34,210 --> 00:05:37,910 ระยะเวลาในบัตรแล้วที่เราสามารถทำได้ พิมพ์อเมริกันเอ็กซ์เพรส 93 00:05:37,910 --> 00:05:41,920 >> เราจะทำสิ่งที่คล้ายกันกับการขอวีซ่า 94 00:05:41,920 --> 00:05:51,940 ตัวเลขสองหลักแรกจะต้องมีมากขึ้น กว่าหรือเท่ากับ 40 หรือน้อยกว่า 95 00:05:51,940 --> 00:05:54,290 กว่าหรือเท่ากับ 49 96 00:05:54,290 --> 00:05:57,180 ผู้ที่เป็นตัวแทนของบัตรวีซ่าที่ถูกต้อง 97 00:05:57,180 --> 00:06:01,530 และระยะเวลาที่จะต้องเท่ากับ ความยาว 1 วีซ่าหรือวีซ่ายาว 2 98 00:06:01,530 --> 00:06:07,320 และอื่น ๆ ระยะเวลาจะต้องเป็นอย่างใดอย่างหนึ่ง 13 หรือ 16 หลักยาว 99 00:06:07,320 --> 00:06:12,240 >> และสุดท้ายกับมาสเตอร์การ์ดก็ คล้ายกับวีซ่าที่สองครั้งแรก 100 00:06:12,240 --> 00:06:15,340 หลักจะต้องมีในบาง ช่วงและต้องมีความยาว 101 00:06:15,340 --> 00:06:19,440 จะตรงกับ 16 หลัก 102 00:06:19,440 --> 00:06:24,390 ดังนั้นถ้ามีกรณีที่ค้างไว้แล้วใน กรณีแรกที่เราจะพิมพ์ AMEX 103 00:06:24,390 --> 00:06:26,310 ถ้ากรณีนี้ถือเราจะพิมพ์วีซ่า 104 00:06:26,310 --> 00:06:28,400 ถ้ากรณีนี้ถือเราจะ พิมพ์มาสเตอร์การ์ด 105 00:06:28,400 --> 00:06:32,170 >> แต่ถ้าไม่มีผู้ถือแม้ ถ้าการตรวจสอบที่ถูกต้อง 106 00:06:32,170 --> 00:06:33,900 เรายังคงพิมพ์ไม่ถูกต้อง 107 00:06:33,900 --> 00:06:37,050 เพราะมันไม่ได้เป็นอย่างใดอย่างหนึ่ง ประเภทที่ของบัตร 108 00:06:37,050 --> 00:06:40,030 ชื่อของฉันคือร็อบและฉันหวังว่าคุณ พบที่น่าสนใจเครดิต 109 00:06:40,030 --> 00:06:46,272