דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. קוד לביצוע הגרלה. האם הוא תקין?

קוד לביצוע הגרלה. האם הוא תקין?

מתוזמן נעוץ נעול הועבר תכנות
14 פוסטים 3 כותבים 316 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • אבי 203א מנותק
    אבי 203א מנותק
    אבי 203
    כתב ב נערך לאחרונה על ידי
    #1

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

      let tptalcard = await wixData.query("card").contains("mcil", "הגרלה").isNotEmpty("torem").find()
        let sac87 = tptalcard.totalCount
        let mszoch = Math.floor((Math.random() * sac87));
    
        let zoche = await wixData.query("card").contains("mcil", "הגרלה").isNotEmpty("torem").include("save").include("torem").limit(1).skip(mszoch).find()
        let item = zoche.items[0]
        console.log(item);
    

    https://www.av-digital.co.il/

    yossizY תגובה 1 תגובה אחרונה
    0
    • אבי 203א אבי 203

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

        let tptalcard = await wixData.query("card").contains("mcil", "הגרלה").isNotEmpty("torem").find()
          let sac87 = tptalcard.totalCount
          let mszoch = Math.floor((Math.random() * sac87));
      
          let zoche = await wixData.query("card").contains("mcil", "הגרלה").isNotEmpty("torem").include("save").include("torem").limit(1).skip(mszoch).find()
          let item = zoche.items[0]
          console.log(item);
      
      yossizY מנותק
      yossizY מנותק
      yossiz
      כתב ב נערך לאחרונה על ידי
      #2

      @אבי-203 הדבר היחיד שתפס את עיני זה העובדה שאתה מתשאל את ה-DB בלי מיון, במקרה כזה (ב-DB רגיל) מותר לו לתת את התוצאות בכל סדר שבא לו. בעקרון הוא יכול להחזיר אותו אחד לכל תוצאה של mzoch

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

      אבי 203א תגובה 1 תגובה אחרונה
      0
      • yossizY yossiz

        @אבי-203 הדבר היחיד שתפס את עיני זה העובדה שאתה מתשאל את ה-DB בלי מיון, במקרה כזה (ב-DB רגיל) מותר לו לתת את התוצאות בכל סדר שבא לו. בעקרון הוא יכול להחזיר אותו אחד לכל תוצאה של mzoch

        אבי 203א מנותק
        אבי 203א מנותק
        אבי 203
        כתב ב נערך לאחרונה על ידי
        #3

        @yossiz גם random לכאורה יכול להביא את אותה התוצאה פעמיים. אז מה בכך שאין מיון אדרבא ערבוב שני?!

        https://www.av-digital.co.il/

        yossizY תגובה 1 תגובה אחרונה
        0
        • אבי 203א אבי 203

          @yossiz גם random לכאורה יכול להביא את אותה התוצאה פעמיים. אז מה בכך שאין מיון אדרבא ערבוב שני?!

          yossizY מנותק
          yossizY מנותק
          yossiz
          כתב ב נערך לאחרונה על ידי
          #4

          @אבי-203 העובדה שאין מיון, לא אומר שהתוצאה ממויין בצורה רנדומלית, זה אומר שמסד הנתונים יכול להחליט למיין איך שהוא שהכי מתאים לו בלי שום התייחסות למה שאתה צריך, הוא יכול למיין תמיד בצורה כזאת שהרשומה שמגיע אחרי skip(mszoch) תמיד יהיה משתמש X, לא משנה איזה ערך תשים ל-mzoch, סתם כי ככה בא לו תמיד לשלוף משתמש X.
          (העובדה שהוא יכול לא אומר שזה מה שהוא עושה בפועל, אבל יותר תקין להכריח מיון מסויים כדי להיות בטוח שהוא לא משחק איתך מאחורי גבך)

          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

          אבי 203א dovidD 2 תגובות תגובה אחרונה
          2
          • yossizY yossiz

            @אבי-203 העובדה שאין מיון, לא אומר שהתוצאה ממויין בצורה רנדומלית, זה אומר שמסד הנתונים יכול להחליט למיין איך שהוא שהכי מתאים לו בלי שום התייחסות למה שאתה צריך, הוא יכול למיין תמיד בצורה כזאת שהרשומה שמגיע אחרי skip(mszoch) תמיד יהיה משתמש X, לא משנה איזה ערך תשים ל-mzoch, סתם כי ככה בא לו תמיד לשלוף משתמש X.
            (העובדה שהוא יכול לא אומר שזה מה שהוא עושה בפועל, אבל יותר תקין להכריח מיון מסויים כדי להיות בטוח שהוא לא משחק איתך מאחורי גבך)

            אבי 203א מנותק
            אבי 203א מנותק
            אבי 203
            כתב ב נערך לאחרונה על ידי אבי 203
            #5

            @yossiz הבנתי תודה חבר!
            אם אפשר רק להבין מדבריך שאין חשש אחר למשל שלא יביא רשומה 0 ? ואת האחרונה?

            https://www.av-digital.co.il/

            yossizY תגובה 1 תגובה אחרונה
            0
            • אבי 203א אבי 203

              @yossiz הבנתי תודה חבר!
              אם אפשר רק להבין מדבריך שאין חשש אחר למשל שלא יביא רשומה 0 ? ואת האחרונה?

              yossizY מנותק
              yossizY מנותק
              yossiz
              כתב ב נערך לאחרונה על ידי
              #6

              @אבי-203 כתב בקוד לביצוע הגרלה. האם הוא תקין?:

              אם אפשר רק להבין מדבריך שאין חשש אחר למשל שלא יביא רשומה 0 ? ואת האחרונה?

              אני לא חושב שאפשר להבין את זה מדבריי, רק כתבתי מה שתפס את עיניי, אבל גם עכשיו שאתה מעורר את זה, נראה לי שמבחינה הזאת זה תקין
              (הרשומה הראשונה יתקבל עבור כל תוצאה של math.random שהוא מתחת ל-1/sac87 (סרסהו ודרשהו, הסדר משובש כי כיוון הקטע מימין לשמאל) והאחרונה עבור תוצאה שמעל ל-1-1/sca87 (כנ"ל))

              📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

              dovidD תגובה 1 תגובה אחרונה
              0
              • yossizY yossiz

                @אבי-203 העובדה שאין מיון, לא אומר שהתוצאה ממויין בצורה רנדומלית, זה אומר שמסד הנתונים יכול להחליט למיין איך שהוא שהכי מתאים לו בלי שום התייחסות למה שאתה צריך, הוא יכול למיין תמיד בצורה כזאת שהרשומה שמגיע אחרי skip(mszoch) תמיד יהיה משתמש X, לא משנה איזה ערך תשים ל-mzoch, סתם כי ככה בא לו תמיד לשלוף משתמש X.
                (העובדה שהוא יכול לא אומר שזה מה שהוא עושה בפועל, אבל יותר תקין להכריח מיון מסויים כדי להיות בטוח שהוא לא משחק איתך מאחורי גבך)

                dovidD מנותק
                dovidD מנותק
                dovid
                ניהול
                כתב ב נערך לאחרונה על ידי
                #7

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

                    let zoche = await wixData.query("card")
                                             .contains("mcil", "הגרלה")
                                             .isNotEmpty("torem")
                                             .include("save")
                                             .include("torem")
                                             .ascending(x => Math.random()) //not supported
                                             .limit(1)
                                             .find():
                
                • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                yossizY תגובה 1 תגובה אחרונה
                0
                • yossizY yossiz

                  @אבי-203 כתב בקוד לביצוע הגרלה. האם הוא תקין?:

                  אם אפשר רק להבין מדבריך שאין חשש אחר למשל שלא יביא רשומה 0 ? ואת האחרונה?

                  אני לא חושב שאפשר להבין את זה מדבריי, רק כתבתי מה שתפס את עיניי, אבל גם עכשיו שאתה מעורר את זה, נראה לי שמבחינה הזאת זה תקין
                  (הרשומה הראשונה יתקבל עבור כל תוצאה של math.random שהוא מתחת ל-1/sac87 (סרסהו ודרשהו, הסדר משובש כי כיוון הקטע מימין לשמאל) והאחרונה עבור תוצאה שמעל ל-1-1/sca87 (כנ"ל))

                  dovidD מנותק
                  dovidD מנותק
                  dovid
                  ניהול
                  כתב ב נערך לאחרונה על ידי dovid
                  #8

                  @yossiz כתב בקוד לביצוע הגרלה. האם הוא תקין?:

                  אבל גם עכשיו שאתה מעורר את זה

                  זו הייתה שאלתו מהתחלה, ולא ידעתי לענות על זה.
                  אני אולי ילדותי אבל אני מרגיש סיכויים נמוכים לrandom להחזיר 0 או 1.

                  • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                  • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                  תגובה 1 תגובה אחרונה
                  0
                  • dovidD dovid

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

                        let zoche = await wixData.query("card")
                                                 .contains("mcil", "הגרלה")
                                                 .isNotEmpty("torem")
                                                 .include("save")
                                                 .include("torem")
                                                 .ascending(x => Math.random()) //not supported
                                                 .limit(1)
                                                 .find():
                    
                    yossizY מנותק
                    yossizY מנותק
                    yossiz
                    כתב ב נערך לאחרונה על ידי yossiz
                    #9

                    @dovid כתב בקוד לביצוע הגרלה. האם הוא תקין?:

                    ולגבי השניה מה ההבדל אם הוא תוקע מיון לפי א-ב שעדיין זה אקראי לגבי מיקום או שהוא שם מיון אחר

                    אולי אתה צודק. רוב הסיכויים שאתה צודק. אבל יותר תקני להכניס מיון, אחרת ה-DB יכול להחליט להיות רשע ולהביא דוקא משתמש X בכל פעם. (אגב, כאשר יש skip בהחלט יותר קל להתעלם מה-skip כאשר אין מיון וזה עדיין יהיה לפי כל הכללים)
                    אולי ב-WIX יש מיון ברירת מחדל. במסדים שאני מכיר כאשר אתה לא נותן מיון התוצאה הוא undefined behavior

                    בעיני (זה אולי רגשי) יותר אקראי לתת לכל אחד מס' אקראי ולמיין ברמת הDB

                    כן, נראה לי שזה רגשי... 🙂
                    אלא אם כן פספסתי משהו, שזה הגיוני לגמרי

                    אני אולי ילדותי אבל אני מרגיש סיכויים נמוכים לrandom להחזיר 0 או 1.

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

                    📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                    dovidD תגובה 1 תגובה אחרונה
                    2
                    • yossizY yossiz

                      @dovid כתב בקוד לביצוע הגרלה. האם הוא תקין?:

                      ולגבי השניה מה ההבדל אם הוא תוקע מיון לפי א-ב שעדיין זה אקראי לגבי מיקום או שהוא שם מיון אחר

                      אולי אתה צודק. רוב הסיכויים שאתה צודק. אבל יותר תקני להכניס מיון, אחרת ה-DB יכול להחליט להיות רשע ולהביא דוקא משתמש X בכל פעם. (אגב, כאשר יש skip בהחלט יותר קל להתעלם מה-skip כאשר אין מיון וזה עדיין יהיה לפי כל הכללים)
                      אולי ב-WIX יש מיון ברירת מחדל. במסדים שאני מכיר כאשר אתה לא נותן מיון התוצאה הוא undefined behavior

                      בעיני (זה אולי רגשי) יותר אקראי לתת לכל אחד מס' אקראי ולמיין ברמת הDB

                      כן, נראה לי שזה רגשי... 🙂
                      אלא אם כן פספסתי משהו, שזה הגיוני לגמרי

                      אני אולי ילדותי אבל אני מרגיש סיכויים נמוכים לrandom להחזיר 0 או 1.

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

                      dovidD מנותק
                      dovidD מנותק
                      dovid
                      ניהול
                      כתב ב נערך לאחרונה על ידי dovid
                      #10

                      @yossiz כתב בקוד לביצוע הגרלה. האם הוא תקין?:

                      אחרת ה-DB יכול להחליט להיות רשע ולהביא דוקא משתמש X בכל פעם

                      אהה, הבנתי. אתה מדבר על הskip, זה לא רשעות, אדרבא הייתי משבח אותו על חכמה כי מה המשמעות לskip כשלא ציינת מיון.
                      (לא מצאתי בwix תיעוד לסדר הדיפולטי, אני חושב שאי אפשר להשליך משאר הDB אליהם).

                      @אבי-203 לסיכום הקוד שלך מצויין והוגן כלפי המשתתפים, רק תכניס מיון בשאילתה שבוחרת את הזוכה (זו עם הskip).
                      כפי שיוסי הסביר, הrandom נותן תוצאה בין 0 ל1, אם מספר הזוכים הוא למשל 20 אז כל המרחב שבין 0.0 ל1 מחולק ל20 והכפל ייתן תוצאה הוגנת ושיוויונית של בין 0 ל19.

                      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                      yossizY תגובה 1 תגובה אחרונה
                      2
                      • dovidD dovid

                        @yossiz כתב בקוד לביצוע הגרלה. האם הוא תקין?:

                        אחרת ה-DB יכול להחליט להיות רשע ולהביא דוקא משתמש X בכל פעם

                        אהה, הבנתי. אתה מדבר על הskip, זה לא רשעות, אדרבא הייתי משבח אותו על חכמה כי מה המשמעות לskip כשלא ציינת מיון.
                        (לא מצאתי בwix תיעוד לסדר הדיפולטי, אני חושב שאי אפשר להשליך משאר הDB אליהם).

                        @אבי-203 לסיכום הקוד שלך מצויין והוגן כלפי המשתתפים, רק תכניס מיון בשאילתה שבוחרת את הזוכה (זו עם הskip).
                        כפי שיוסי הסביר, הrandom נותן תוצאה בין 0 ל1, אם מספר הזוכים הוא למשל 20 אז כל המרחב שבין 0.0 ל1 מחולק ל20 והכפל ייתן תוצאה הוגנת ושיוויונית של בין 0 ל19.

                        yossizY מנותק
                        yossizY מנותק
                        yossiz
                        כתב ב נערך לאחרונה על ידי
                        #11

                        @dovid כתב בקוד לביצוע הגרלה. האם הוא תקין?:

                        רק תכניס מיון בשאילתה שבוחרת את הזוכה

                        אחרי שיש ב-wix מיון דיפולטי כפי שכתבת, אז כבר לא צריך?

                        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                        dovidD תגובה 1 תגובה אחרונה
                        0
                        • yossizY yossiz

                          @dovid כתב בקוד לביצוע הגרלה. האם הוא תקין?:

                          רק תכניס מיון בשאילתה שבוחרת את הזוכה

                          אחרי שיש ב-wix מיון דיפולטי כפי שכתבת, אז כבר לא צריך?

                          dovidD מנותק
                          dovidD מנותק
                          dovid
                          ניהול
                          כתב ב נערך לאחרונה על ידי
                          #12

                          @yossiz היה טעות סופר בדבריי, כוונתי הייתה שלא מצאתי כל תיעוד לנושא.

                          • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                          • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                          אבי 203א תגובה 1 תגובה אחרונה
                          1
                          • dovidD dovid

                            @yossiz היה טעות סופר בדבריי, כוונתי הייתה שלא מצאתי כל תיעוד לנושא.

                            אבי 203א מנותק
                            אבי 203א מנותק
                            אבי 203
                            כתב ב נערך לאחרונה על ידי
                            #13

                            @dovid @yossiz הקוד הזה אמור להגריל בקרוב רבע מליון שקל...
                            ראוי שיעבור את בדיקתכם ואישורכם.
                            https://www.hilula.org/

                            https://www.av-digital.co.il/

                            dovidD תגובה 1 תגובה אחרונה
                            0
                            • אבי 203א אבי 203

                              @dovid @yossiz הקוד הזה אמור להגריל בקרוב רבע מליון שקל...
                              ראוי שיעבור את בדיקתכם ואישורכם.
                              https://www.hilula.org/

                              dovidD מנותק
                              dovidD מנותק
                              dovid
                              ניהול
                              כתב ב נערך לאחרונה על ידי dovid
                              #14

                              @אבי-203 יוסי כבר ענה לך, קיבלת את אישורינו.

                              • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                              • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                              תגובה 1 תגובה אחרונה
                              2
                              תגובה
                              • תגובה כנושא
                              התחברו כדי לפרסם תגובה
                              • מהישן לחדש
                              • מהחדש לישן
                              • הכי הרבה הצבעות


                              בא תתחבר לדף היומי!
                              • התחברות

                              • אין לך חשבון עדיין? הרשמה

                              • התחברו או הירשמו כדי לחפש.
                              • פוסט ראשון
                                פוסט אחרון
                              0
                              • דף הבית
                              • קטגוריות
                              • פוסטים אחרונים
                              • משתמשים
                              • חיפוש
                              • חוקי הפורום