הבלוג של גרי רשף

15/10/2010

גימטריה

Filed under: Uncategorized — תגיות: , — גרי רשף @ 09:19

חז"ל פסקו שגמטריאות הן פרפראות לחכמה, אך למעשה כל הבלוג הזה אינו אלא פרפרה אחת גדולה, ולכן לא אמשוך ידי אף מזה:

Create Function F_Gimatria(@S Varchar(Max)) Returns Int

As

Begin

Declare    @I Int,

        @Gmtr Int;

Select    @I=1,

        @Gmtr=0;

While    @I<=Len(@S)

    Select    @Gmtr=@Gmtr+Case SubString(@S,@I,1) When 'א' Then 1

                                                When 'ב' Then 2

                                                When 'ג' Then 3

                                                When 'ד' Then 4

                                                When 'ה' Then 5

                                                When 'ו' Then 6

                                                When 'ז' Then 7

                                                When 'ח' Then 8

                                                When 'ט' Then 9

                                                When 'י' Then 10

                                                When 'כ' Then 20

                                                When 'ל' Then 30

                                                When 'מ' Then 40

                                                When 'נ' Then 50

                                                When 'ס' Then 60

                                                When 'ע' Then 70

                                                When 'פ' Then 80

                                                When 'צ' Then 90

                                                When 'ק' Then 100

                                                When 'ר' Then 200

                                                When 'ש' Then 300

                                                When 'ת' Then 400

                                                Else 0

                                                End,

            @I=@I+1;

Return    @Gmtr;

End

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

דא עקא ש-SQL Server מאפשר עד 32 רמות רקורסיה, וזה מגביל אותנו למחרוזות באורך של עד 32 תווים.. חבל!

יתכן ויהיו בעיות אצל מי שה-Collation שלו אינו עברי או שהוא Case Sensitive (כלומר- מבחין בין אות רגילה לסופית), אבל ככלל הפונקציה תקינה.

למה היא שימושית? למשל לחידה זו בה אנו נדרשים למצוא מספרים ששווים לערכם הגימטרי, ולשם כך נעשה שימוש בפונקציה מפוסט קודם שלי מספרים במילים:

With T As

(Select 1 N

Union All

Select    N+1

From    T

Where    N<10000)

Select    *,

        N-Gmtr

From    (Select    *,

                dbo.F_Gimatria(Txt) Gmtr

        From    (Select    N,

                        dbo.F_Num2Text(N,0) Txt

                From    T) T) T

Where    N=Gmtr

Option (MaxRecursion 0);

למרבה הצער לא מצאתי מספרים מתאימים.. 😦

מודעות פרסומת

להגיב »

עדיין אין תגובות.

RSS feed for comments on this post. TrackBack URI

להשאיר תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s

יצירה של אתר חינמי או בלוג ב־WordPress.com.

%d בלוגרים אהבו את זה: