כך מפצחים את אתגר התולעת הזדונית של ממר"ם

14.07.22
רוני מינצנט, מערכת את"צ

לאתגר המלא לחצו כאן

הפתרון:  100%.

איך מגיעים לתשובה? בזכות השיטה הזו:

  • ראשית, נמספר את השרתים בצורה שרירותית מ-0 עד 1958 .
  • באופן דומה, נמספר את 11 הלפטופים באופן שרירותי מ-0 עד 10.
  • כעת, עלינו להחליט איזה לפטופים לחבר לאיזה שרתים בזמן המוקצב לנו.
  • נסתכל על כל מספר של שרת כמספר בינארי בעל 11 ספרות: (2^11=2048>1959), החל מ-0 (00000000000) ועד 1958 (11110100110)
  • עבור כל שרת, נחבר את הלפטופ מספר X אם הביט ה- X של השרת דולק (שרת דולק =כלומר הביט ה-X של השרת הינו 1 בערכו הבינארי של מספר השרת).
  • לדוגמה, עבור השרת מספר 1958 (11110100110) נחבר אליו את הלפטופים מספרי: 1,2,5,7,8,9,10.
  • כך, נדע מהו המחשב בעל התולעת בתום ה-24 שעות - התולעת תתפשט אך ורק ללפטופים אשר התחברו לשרת הספציפי.
    הלפטופים אשר לא התחברו לשרת בעל התולעת לא יידבקו בתולעת. 
  • נדע לפי המספר הבינארי של הלפטופים באיזה מספר שרת מדובר.
  • בנוסף, בדרך זו אנו עומדים בתנאי הזמן של 24 השעות. יש ב-24 שעות 1440 דקות. כל חיבור של לפטופ לשרת לוקח דקה ובמקסימום. אנו מבצעים במקסימום 980 חיבורים של לפטופ ספציפי - הלפטופ שמספרו 0.