ספרת ביקורת – הבדלי גרסאות

מתוך ויקיפדיה, האנציקלופדיה החופשית
תוכן שנמחק תוכן שנוסף
מ החלפת תג source לתג syntaxhighlight*
שורה 6: שורה 6:


==ספרת ביקורת במספר הזהות בישראל==
==ספרת ביקורת במספר הזהות בישראל==
[[מספר זהות|מספר הזהות]] ב[[ישראל]] מורכב מתשע [[ספרה|ספרות]], שהימנית שבהן היא ספרת הביקורת. לכל אחת משמונה הספרות שמשמאל ניתן [[משקל (חישוב)|משקל]]: 1 (לספרה ראשונה), 2, 1, 2, 1, 2, 1, 2.

[[מספר זהות|מספר הזהות]] ב[[ישראל]], מורכב מתשע [[ספרה|ספרות]], שהימנית שבהן היא ספרת הביקורת. לכל אחת משמונה הספרות שמשמאל ניתן [[משקל (חישוב)|משקל]]: 1 (לספרה ראשונה), 2, 1, 2, 1, 2, 1, 2.


כל ספרה מוכפלת במשקל שלה, וכל הספרות של התוצאות מחוברות יחדיו. אם התוצאה של הכפלת הספרה במשקלה היא בת שתי ספרות, מסוכמת כל אחת משתי הספרות של התוצאה (כלומר המספר הדו-ספרתי מופרד לשני מספרים בעלי ספרה אחת, המחוברות לכל יתר הספרות). את הסכום המתקבל יש להשלים לכפולה הקרובה של 10 (כלפי מעלה. לדוגמה: אם הסכום שהתקבל הוא 32, ההשלמה תהיה 8). ההפרש שאותו נדרש להשלים הוא ספרת הביקורת.
כל ספרה מוכפלת במשקל שלה, וכל הספרות של התוצאות מחוברות יחדיו. אם התוצאה של הכפלת הספרה במשקלה היא בת שתי ספרות, מסוכמת כל אחת משתי הספרות של התוצאה (כלומר המספר הדו-ספרתי מופרד לשני מספרים בעלי ספרה אחת, המחוברות לכל יתר הספרות). את הסכום המתקבל יש להשלים לכפולה הקרובה של 10 (כלפי מעלה. לדוגמה: אם הסכום שהתקבל הוא 32, ההשלמה תהיה 8). ההפרש שאותו נדרש להשלים הוא ספרת הביקורת.
שורה 13: שורה 12:
'''דוגמה:''' מספר הזהות הוא 54370042-1. מכפלות שמונה ספרותיו השמאליות של מספר זה במשקלות שלהן הן:<BR>
'''דוגמה:''' מספר הזהות הוא 54370042-1. מכפלות שמונה ספרותיו השמאליות של מספר זה במשקלות שלהן הן:<BR>
<div style="text-align: center; direction: ltr; margin-left: 1em;">
<div style="text-align: center; direction: ltr; margin-left: 1em;">
5×1 = 5, 4×2 = 8, 3 ×1 = 3, 7×2 = 14, 0×1 = 0 ,0 ×2 = 0,4 ×1 = 4, 2 ×2 = 4
5×1 = 5, 4×2 = 8, 3 ×1 = 3, 7×2 = 14, 0×1 = 0 ,0 ×2 = 0,4 ×1 = 4, 2 ×2 = 4
</div>
</div>
סכום ספרותיהן (יש לשים לב - מחברים את הספרות ולא את המספרים) הוא 29 =4 + 4 + 0 + 0 + (1+4) + 3 + 8 + 5
סכום ספרותיהן (יש לשים לב - מחברים את הספרות ולא את המספרים) הוא 29 =4 + 4 + 0 + 0 + (1+4) + 3 + 8 + 5
שורה 71: שורה 70:
function IDValidator(id)
function IDValidator(id)
{
{
id += ""; //cast as string
id += ""; //cast as string
if (id.length != 9 || isNaN(id)) {
if (id.length != 9 || isNaN(id)) {
return false;
return false;
}
}
var counter = 0, incNum;
var counter = 0, incNum;
for (i in id) {
for (i in id) {
incNum = Number(id[i]) * ((i % 2) + 1);//multiply digit by 1 or 2
incNum = Number(id[i]) * ((i % 2) + 1);//multiply digit by 1 or 2
counter += (incNum > 9) ? incNum - 9 : incNum;//sum the digits up and add to counter
counter += (incNum > 9) ? incNum - 9 : incNum;//sum the digits up and add to counter
}
}
return (counter % 10 == 0);
return (counter % 10 == 0);
}
}
</syntaxhighlight>
</syntaxhighlight>

גרסה מ־10:49, 21 בינואר 2016

קוד (בברקוד ובספרות רגילות) של חברת דואר גרמנית, שבקצהו הימני ספרת ביקורת

ספרת ביקורת היא ספרה הנוספת, בעיקר במערכות מידע, למספר נתון, כדי לזהות טעות שנעשתה בעת העתקתו.

במספר תעודת הזהות הישראלית, למשל, הספרה הימנית ביותר היא ספרת ביקורת. גם במספר של כרטיס אשראי ובמספר חשבון בנק נכללת ספרת ביקורת, וכך במספרים נוספים. כאשר אדם מוסר או מקליד מספר מסוג זה, קל לבדוק מיידית את תקינותו באמצעות ספרת הביקורת, עוד לפני הפנייה למאגר הנתונים לשם מציאת מספר זה. ספרת הביקורת היא פונקציה של כל יתר הספרות שבמספר המתאים לה, ובדיקת נכונותה נעשית באמצעות הפעלת פונקציה זו על המספר הנתון. ניתן להמחיש זאת באמצעות חישוב ספרת ביקורת באמצעות אלגוריתם לוהן (Luhn). אלגוריתם זה, פותח על ידי איש מעבדות IBM בשנות ה-50 ומשמש, בין היתר, לחישוב ספרת הביקורת במספר הזהות בישראל, ספרת הביקורת בכרטיסי אשראי ועוד.

ספרת ביקורת במספר הזהות בישראל

מספר הזהות בישראל מורכב מתשע ספרות, שהימנית שבהן היא ספרת הביקורת. לכל אחת משמונה הספרות שמשמאל ניתן משקל: 1 (לספרה ראשונה), 2, 1, 2, 1, 2, 1, 2.

כל ספרה מוכפלת במשקל שלה, וכל הספרות של התוצאות מחוברות יחדיו. אם התוצאה של הכפלת הספרה במשקלה היא בת שתי ספרות, מסוכמת כל אחת משתי הספרות של התוצאה (כלומר המספר הדו-ספרתי מופרד לשני מספרים בעלי ספרה אחת, המחוברות לכל יתר הספרות). את הסכום המתקבל יש להשלים לכפולה הקרובה של 10 (כלפי מעלה. לדוגמה: אם הסכום שהתקבל הוא 32, ההשלמה תהיה 8). ההפרש שאותו נדרש להשלים הוא ספרת הביקורת.

דוגמה: מספר הזהות הוא 54370042-1. מכפלות שמונה ספרותיו השמאליות של מספר זה במשקלות שלהן הן:

5×1 = 5, 4×2 = 8, 3 ×1 = 3, 7×2 = 14, 0×1 = 0 ,0 ×2 = 0,4 ×1 = 4, 2 ×2 = 4

סכום ספרותיהן (יש לשים לב - מחברים את הספרות ולא את המספרים) הוא 29 =4 + 4 + 0 + 0 + (1+4) + 3 + 8 + 5 ולכן ספרת הביקורת היא 1 (המשלים של 29 ל-30).

5 4 3 7 0 0 4 2
1 2 1 2 1 2 1 2
5×1 = 5 4×2 = 8 3×1 = 3 7×2 = 14 0×1 = 0 0×2 = 0 4×1 = 4 2×2 = 4
5 8 3 1+4 = 5 0 0 4 4
5 + 8 + 3 + 5 + 0 + 0 + 4 + 4 = 29

טעות באחת הספרות, וכן הצלבה בין שתי ספרות סמוכות (לדוגמה, הזנת 21 או 13 במקום 12) מלבד הצלבת הספרות 0 ו-9 (0 נשארת 0 גם לאחר הכפלה ו-9 נשארת 9 גם לאחר הכפלה) תזוהה בעזרת ספרת הביקורת. טעות בשתי ספרות, או הצלבה בין שתי ספרות שאינן סמוכות עלולה לחמוק מזיהוי. הפונקציה המשמשת בחישוב מספר הזהות אינה היחידה המקובלת, ובמספרים אחרים מקובלות פונקציות אחרות, המבוססות על עיקרון דומה. (ההשלמה לכפולה הקרובה של 10 אינה מועילה מבחינת איכות ספרת הביקורת, אך היא מפשטת את האלגוריתם המשמש לבדיקתה).

ספרת ביקורת מהסוג המתואר לעיל מאפשרת זיהוי של טעות, אך היא אינה מאפשרת את תיקון הטעות. ספרות ביקורת המחושבות באלגוריתם מורכב יותר מאפשרות גם תיקון של טעויות מסוימות.

דוגמת קוד לאימות ספרת ביקורת

דוגמה לפונקציה (ב-JavaScript) הבודקת האם מספר שהתקבל הוא מספר זהות ישראלי תקין.

function IDValidator(id)
{
 id += ""; //cast as string
 if (id.length != 9 || isNaN(id)) {
 return false;
 }
 var counter = 0, incNum;
 for (i in id) {
 incNum = Number(id[i]) * ((i % 2) + 1);//multiply digit by 1 or 2
 counter += (incNum > 9) ? incNum - 9 : incNum;//sum the digits up and add to counter
 }
 return (counter % 10 == 0);
}

סיבית ביקורת במחשבים

במחשבים ישנים היו בעיות של חוסר אמינות של הזיכרון, דבר שהביא את חברת IBM לצרף לכל בית במחשביה סיבית ביקורת (כך שבית מורכב למעשה מ־9 סיביות = 8 סיביות נתונים + סיבית ביקורת). סיבית הביקורת מאפשרת לזהות טעות בסיבית אחת בודדת, אך לא לתקנה. במחשבים שבהם נושא אמינות הזיכרון הוא קריטי (למשל שרתי נתונים) משתמשים בטכניקות כגון קודים לתיקון שגיאות (Error-Correcting Codes - ECC), המאפשרות לזהות שגיאות מורכבות יותר ואף לתקן שגיאות מסוימות.

קישורים חיצוניים