אלגוריתמים - pattern matching
נתונה מחרוזת של ביטים S ותבנית P שאותה צריך לחפש בS כאשר P מורכבת מ 0 1 או * כאשר מופיעה * ב P לא משנה מה מופיע ב S וצריך למצוא את המופעים של P ב S . באלגוריתם הרגיל של מציאת תבנית היו מוגדרות שתי סדרות של -1 ו 1 כאשר במקום המקביל במחרוזת המתאימה לכל סדרה הופיע 0 או 1 בהתאמה .. ובסדרה המתאימה לתבנית בכל מקום שהוא מסמן מקום הגדול מאורך התבנית היה 0. לאחר הפעלת קונבולוציה על שתי הסדרות במקומות שמתאימים למקום ב S בו מתחילה P שלמה היה האורך של P .. חשבתי באלגוריתם לבעיה החדשה להגדיר 0 במקום בו יש * בP ו -1 ו1 כמו בבעיה הקודמת ואז לחפש בקונבולוציה מקומות בהם יש את אורך התבנית פחות מספר ה-*אבל זה יוצר בעיה עם המקומות הגדולים מאורך המחרוזת .. אם יוגדר שם מספר אחר לדוג' 2 אז בקונבולוציה יופיע ערך חסר משמעות מכיוון ש2 יוכפל ב1 או -1 בהתאם למקום המקביל בS .. אני בכלל בכיוון ?
נתונה מחרוזת של ביטים S ותבנית P שאותה צריך לחפש בS כאשר P מורכבת מ 0 1 או * כאשר מופיעה * ב P לא משנה מה מופיע ב S וצריך למצוא את המופעים של P ב S . באלגוריתם הרגיל של מציאת תבנית היו מוגדרות שתי סדרות של -1 ו 1 כאשר במקום המקביל במחרוזת המתאימה לכל סדרה הופיע 0 או 1 בהתאמה .. ובסדרה המתאימה לתבנית בכל מקום שהוא מסמן מקום הגדול מאורך התבנית היה 0. לאחר הפעלת קונבולוציה על שתי הסדרות במקומות שמתאימים למקום ב S בו מתחילה P שלמה היה האורך של P .. חשבתי באלגוריתם לבעיה החדשה להגדיר 0 במקום בו יש * בP ו -1 ו1 כמו בבעיה הקודמת ואז לחפש בקונבולוציה מקומות בהם יש את אורך התבנית פחות מספר ה-*אבל זה יוצר בעיה עם המקומות הגדולים מאורך המחרוזת .. אם יוגדר שם מספר אחר לדוג' 2 אז בקונבולוציה יופיע ערך חסר משמעות מכיוון ש2 יוכפל ב1 או -1 בהתאם למקום המקביל בS .. אני בכלל בכיוון ?