כבר הרבה נכתב בנושא הדת - על איסור מכירת דירה לערבים

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

אייל סגל

יום שבת, 7 במאי 2011

חידה מפרוייקט אוילר/אוהד קליין

חידה קשה במיוחד, פרי ידו של אוהד קליין.

המאמר מלא בחישובים, כך שאם אם לא יודעים מתמטיקה בצורה מעולה- צאו עכשיו (טוב, את האמת שמדובר במתמטיקה ברמה של 4 יחידות, אבל עם הרבה פישוט, וקצת חשיבה גבוהה).
http://www.mediafire.com/?5hodu6deyymy5dd

הורידו את המאמר בקישור לעיל (פתרון בפרוייקט אוילר) כיוון שקשה מאוד לקדד את כל התמונות...


יום ראשון, 6 במרץ 2011

פרוייקט אוילר- מספרים ראשוניים/ אוהד קליין

מצא את כל(או את כמות) המספרים הראשוניים p המקיימים


לשונאי המתמטיקה שבינינו כדאי לברוח כבר עכשיו... (זו חידה יחסית קשה שדורשת הרבה מתמטיקה)

ברור כי ניתן לבודד את p במשוואה הפשוטה שלעיל:
פונקציה שכדאי שכולנו נכיר נקראת gcd  (greatest common divisor).

היא מוצאת את המחלק המשותף הגדול ביותר של שני מספרים שלמים.
עכשיו נגדיר:

נבטא את p בעזרת a, b, d:

מכיוון ש p הוא שלם אז המונה אמור להתחלק במכנה. נבדוק אילו איברים במונה מתחלקים במכנה:

מכאן ניתן ללמוד כי הביטויים במונה (חוץ מ d) אינם מתחלקים במכנה. לכן d חייב להתחלק בו.
נגדיר:
עכשיו נציב:

מכיוון ש p ראשוני אז q חייב להיות שווה 1 (מספר ראשוני מתחלק בעצמו ובאחד)
ושוב, בגלל אותו נימוק:
הצלחנו לבטא את p כפונקציה של מספר טבעי b. (זו רק ההתחלה)
התבנית שיקבלנו אמנם מבטיחה ש p מקיים את המשוואה הנ"ל היא לא מבטיחה שהוא ראשוני.
ניתן לבדוק על כל איבר בסדרה הזו האם הוא ראשוני או לא, אבל זה ייקח הרבה זמן, במיוחד כאשר מדובר על מספרים גדולים.
נניח כי קיימים שני מספרים t, s השייכים לקבוצה p, ויש להם גורם ראשוני משותף r.
ה 3 לא מעניין אותנו כי r בטח לא מתחלק ב 3, כי כל איבר בקבוצה p לא מתחלק ב 3.
לכן k חייב להתחלק ב 3, וכאשר נחלק את שני האגפים ב 3 נקבל עדיין את אותה הצורה:
יש שתי אפשרויות: (שתיהן מתקיימות, k פה יציין 'מספר טבעי כלשהו' ולא אותו ה k ממקודם)
לכן אמ"מ (ניתן גם להוכיח הפוך) איבר כלשהו במקום c בסדרה p מתחלק ב r אז גם האיברים
יתחלקו בגורם ראשוני r.
אם באלגוריתם שלנו נעבור על כל האיברים ב p (שכבר חישבנו) נוכל בקלות לבדוק האם הם ראשוניים או לא.
כאשר נעבור על איבר במיקום i בקבוצה שלנו(והאיבר ראשוני) – נחלק את כל האיברים הבאים שיתחלקו ב p(i) כמו שהראינו לעיל:
אם מספר במיקום כלשהו השתנה זה אומר שהוא חולק איפשהו באלגוריתם שלנו ואם הוא חולק זה אומר שזה לא מספר ראשוני.

אם שמת לב למשהו מוזר לפני 3 שורות זה סימן שאתה עדיין עוקב ;-)
נכתב לעיל: "נוכל בקלות לבדוק האם הם ראשוניים או לא... איבר בקבוצה(והאיבר ראשוני)"
איך הגעתי למסקנה שהאיברים שאני רץ עליהם ראשוניים?

בעצם, בדרך הזו שאנו מחלקים כל איבר אחר בעל אותו גורם ראשוני, אנחנו מוציאים החוצה מרשימת הגורמים של האיבר את אותו גורם. כדי שכשנגיע לאיבר הוא יהיה ראשוני – אמור להיות לו גורם אחד שלא הוצא מרשימת הגורמים שלו.
כאשר הגורם f מקיים  אז הגורם של p(b) הוצא ב
כאשר הגורם f מקיים  אז הגורם הוצא מ p(b) ב
כאשר הגורם f מקיים  אז בהחלט יתכן כי לא הוצא הגורם f מ p(b) אך ממילא לא יתכן יותר מגורם אחד הגדול מ 2b לאיבר p(b) כי אם היו שניים אז הפונקציה הייתה אמורה להיות לפחות

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


קוד של פתרון החידה:
static void Main(string[] args)
        {
            const long Lim = (long)1e+16; // limit of our search
            List<long> cubicPrime = new List<long>((int)Math.Sqrt(Lim / 3) + 1); // creating list which contains the candidates to be cubic prime (3n^2+3n+1)
            long candidate; // saving variable
            cubicPrime.Add(0); // we want to start the array from cubicPrime[1] for comfortable, because we computed all with one-based-group
            for (int i = 1; (candidate = Term(i)) < Lim; ++i)
            {
                cubicPrime.Add(candidate); //adding all the candidates
            }
            int CubicPrimeCounter = 0; //counter of how many cubic primes there are
            for (int i = 1; i < cubicPrime.Count; ++i)
            {
                if (cubicPrime[i] == 1) continue; //if equal to 1 than it doesn't contain any new prime factor
                candidate = Term(i);
                if (cubicPrime[i] == candidate) // the candidate is really a prime, we haven't divided cubicPrime[i]
                    ++CubicPrimeCounter; // a cubic prime is found


// dividing the next terms in the prime factor we've just found

                candidate = cubicPrime[i];
                for (int k = (int)((i + 1) / candidate + 1), index; (k * candidate - i - 1) < cubicPrime.Count; ++k)
                {
                    index = (int)(k * candidate - i - 1);
                    do
                        cubicPrime[index] /= candidate;
                    while (cubicPrime[index] % candidate == 0);
                }

                for (int k = 1, index; (k * candidate + i) < cubicPrime.Count; ++k)
                {
                    index = (int)(k * candidate + i);
                    do
                        cubicPrime[index] /= candidate;
                    while (cubicPrime[index] % candidate == 0);
                }

            }
            Console.WriteLine(CubicPrimeCounter);
        }

        static long Term(long index)
        {
            return 3 * index * (index + 1) + 1;
        }

לדוגמה:gcd(15,10)=5

יום רביעי, 26 בינואר 2011

דוח ועדת התירוצים/אייל סגל

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

נפגשתי עם הפרחה המצויה שלא רוצה להתגייס ומספרת על מה שהראו ב"עובדה" על איך צה"ל מזניח את חייליו ולא מביא להם כסף, ואיך היא מתה לצאת לסיגריה עכשיו והמניאקים דפקו אותה פעם רביעית ואפילו אי אפשר בזמן הזה להיות רגועה ולצאת לסיגריה, אפילו פעם אחת. רק בהתחלה ובסוף, ואולי באמצע- אם יש לך זין לחכות ת'זמן עד למחשב הבא, אבל אני? מה אני, יש לי זין? סה"כ בחורה אני, למה מה קרה? מדינה חרה. וכצפוי קיבלה את הפטור שלה.

לאחר מכן נפגשתי עם הערס המצוי, זה שמתהדר בג'ינס היוקרתי והחולצה היפה, מספר על זה שנכון שזה לא נראה זיוף? תחשוב, על החרא הזה הייתי צריך לשלם 4 שקל, יעני 400, שילמתי 70, והכי מצחיק זה בשוק שזה גנוב, אבל מה? לא ברור שאם מוכרים בושם ב30 אז הוא גנוב? האמ'אמא של הברור, איזה מציק זה שאני צריך לדבר עם הקב"נית הזונה על התיקים. מה יש לי כוח לפתוח אותם עכשיו? יאלללה, אז יש קצת תיקים במשטרה, נו, באמ'שלכם, מה אני אשכנזי? קיצר, כולם כאן זונות. יש לי חבר לא בא איזה ארבע חמש פעם ומה עשו לו? באו אליו עד הבית הזונות למצוץ לו. הרי מוצצים רק למי ששם זין במדינה הזאת, ת'מבין ת'היגיון. קיצר, המדינה המזדיינת הזאת רוצה שירות? שתבטל לי ת'תיקים, שומע, המדינה חרא, לא כמו שאתה רואה ומאכילים אותך בבית ספר.

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



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