<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[שאלה מתמטית: מספור משבצות טבלה]]></title><description><![CDATA[<p dir="auto">יש לי טבלת HTML כזו:<br />
<img src="/assets/uploads/files/1683659454930-9e065bff-691b-4b7b-8825-841b62df17bf-image.png" alt="9e065bff-691b-4b7b-8825-841b62df17bf-image.png" class=" img-fluid img-markdown" /><br />
יש כאן 27 אלמנטי tr, שמסודרים בשלוש-שלישיות של טורים.</p>
<p dir="auto">אני מעוניין למספר את הtrים לפי מיקומם בטבלה מלמעלה למטה. כך, אלמנט 1 מספרו יהיה 1, וכך גם האלמנטים 4 ו-7, כי הם השורה הראשונה בטבלה; אלמנט 2 יהיה 2 וכן 5 ו8;... 21 יהיה 9, וכן 24 ו-27, כי הם השורה התשיעית.</p>
<p dir="auto">יש לי כמה דרכים לעשות זאת ב-JS אבל מבחינתי הם "ידניים". חייבת להיות פונקציה מתמטית פשוטה שתפיק את הפלט הרצוי.</p>
<p dir="auto">קוד הHTML (למרות שלא כ"כ רלוונטי):</p>
<pre><code>&lt;table dir="auto" style="
    height: 400;
    width: 400;
    border-color: azure;
    border-width: 3;
"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;
        &lt;table&gt;
          &lt;tbody data-general-square="1"&gt;
            &lt;tr data-column="1"&gt;1&lt;/tr&gt;
            &lt;tr data-column="2"&gt;2&lt;/tr&gt;
            &lt;tr data-column="3"&gt;3&lt;/tr&gt;
          &lt;/tbody&gt;
        &lt;/table&gt;
      &lt;/th&gt;
      &lt;th&gt;
        &lt;table&gt;
          &lt;tbody data-general-square="2"&gt;
            &lt;tr data-column="4"&gt;4&lt;/tr&gt;
            &lt;tr data-column="5"&gt;5&lt;/tr&gt;
            &lt;tr data-column="6"&gt;6&lt;/tr&gt;
          &lt;/tbody&gt;
        &lt;/table&gt;
      &lt;/th&gt;
      &lt;th&gt;
        &lt;table&gt;
          &lt;tbody data-general-square="3"&gt;
            &lt;tr data-column="7"&gt;7&lt;/tr&gt;
            &lt;tr data-column="8"&gt;8&lt;/tr&gt;
            &lt;tr data-column="9"&gt;9&lt;/tr&gt;
          &lt;/tbody&gt;
        &lt;/table&gt;
      &lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;
        &lt;table&gt;
          &lt;tbody data-general-square="4"&gt;
            &lt;tr data-column="10"&gt;10&lt;/tr&gt;
            &lt;tr data-column="11"&gt;11&lt;/tr&gt;
            &lt;tr data-column="12"&gt;12&lt;/tr&gt;
          &lt;/tbody&gt;
        &lt;/table&gt;
      &lt;/th&gt;
      &lt;th&gt;
        &lt;table&gt;
          &lt;tbody data-general-square="5"&gt;
            &lt;tr data-column="13"&gt;13&lt;/tr&gt;
            &lt;tr data-column="14"&gt;14&lt;/tr&gt;
            &lt;tr data-column="15"&gt;15&lt;/tr&gt;
          &lt;/tbody&gt;
        &lt;/table&gt;
      &lt;/th&gt;
      &lt;th&gt;
        &lt;table&gt;
          &lt;tbody data-general-square="6"&gt;
            &lt;tr data-column="16"&gt;16&lt;/tr&gt;
            &lt;tr data-column="17"&gt;17&lt;/tr&gt;
            &lt;tr data-column="18"&gt;18&lt;/tr&gt;
          &lt;/tbody&gt;
        &lt;/table&gt;
      &lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;
        &lt;table&gt;
          &lt;tbody data-general-square="7"&gt;
            &lt;tr data-column="19"&gt;19&lt;/tr&gt;
            &lt;tr data-column="20"&gt;20&lt;/tr&gt;
            &lt;tr data-column="21"&gt;21&lt;/tr&gt;
          &lt;/tbody&gt;
        &lt;/table&gt;
      &lt;/th&gt;
      &lt;th&gt;
        &lt;table&gt;
          &lt;tbody data-general-square="8"&gt;
            &lt;tr data-column="22"&gt;22&lt;/tr&gt;
            &lt;tr data-column="23"&gt;23&lt;/tr&gt;
            &lt;tr data-column="24"&gt;24&lt;/tr&gt;
          &lt;/tbody&gt;
        &lt;/table&gt;
      &lt;/th&gt;
      &lt;th&gt;
        &lt;table&gt;
          &lt;tbody data-general-square="9"&gt;
            &lt;tr data-column="25"&gt;25&lt;/tr&gt;
            &lt;tr data-column="26"&gt;26&lt;/tr&gt;
            &lt;tr data-column="27"&gt;27&lt;/tr&gt;
          &lt;/tbody&gt;
        &lt;/table&gt;
      &lt;/th&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
</code></pre>
]]></description><link>https://tchumim.com/topic/15031/שאלה-מתמטית-מספור-משבצות-טבלה</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 17:09:25 GMT</lastBuildDate><atom:link href="https://tchumim.com/topic/15031.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 May 2023 19:20:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to שאלה מתמטית: מספור משבצות טבלה on Wed, 10 May 2023 07:00:10 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/dovid">@<bdi>dovid</bdi></a> ניתוח מעולה. מה שחיפשתי.</p>
]]></description><link>https://tchumim.com/post/152852</link><guid isPermaLink="true">https://tchumim.com/post/152852</guid><dc:creator><![CDATA[שלום עולם 0]]></dc:creator><pubDate>Wed, 10 May 2023 07:00:10 GMT</pubDate></item><item><title><![CDATA[Reply to שאלה מתמטית: מספור משבצות טבלה on Wed, 10 May 2023 01:03:51 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto">יש לי כמה דרכים לעשות זאת ב-JS אבל מבחינתי הם "ידניים". חייבת להיות פונקציה מתמטית פשוטה שתפיק את הפלט הרצוי.</p>
</blockquote>
<p dir="auto">אם אני מצטמצם לשאלה שלך, בהינתן מספר number  מה השורה שלו, הנוסחה הזו עונה:</p>
<pre><code>(((number - 1) % 3)+1) % 9
</code></pre>
<p dir="auto">הבעיה באתגר הזה שהוא לא מציין מה בדיוק הקלט.<br />
אני רואה פה כמה פרמטרים:<br />
א. מספר כולל (27)<br />
ב. מס' עמודות (3)<br />
ג. מס' שורות (3)</p>
<p dir="auto">הספרות בהתחלה יורדות שורה כל פעם, ורק שנגמר סיבוב של 3, הם עוברות לעמודה הבאה. כשמספר העמודות גם הוא משלים שלוש, הם שוב מתחילות מעמודה אחד.<br />
כדי להשיג מתמטית את ההתנהגות הזאת, אפשר פשוט לחלק ל3 כדי לברר מספר עמודה (למשל 4 לחלק לשלוש זה 1.3 ובעיגול כלפי מעלה זה עמודה מס' 2), אך כדי שהתוצאה לא תחרוג מ3 (כי אין ארבעה עמודות) "מאפסים" חזרה על ידי שלוקחים את השארית של 3 (12 לחלק ל3 זה 4, שארית 4 לחלק לשלוש זה 1 וככה חזרנו לעמודה 1).</p>
<p dir="auto">בשביל מספר שורה, אז יש פה פעמיים מונה:<br />
בשביל 1-9 די אם נעשה שארית. 1/4/7 לחלק ל3 זה שארית 1 וכן 2/5/8 זה 2, לגבי 3/6/9 זה מרגיז כי זה שארית 0, אז עושים טריק שמורידים 1 לפני חישוב השארית ומחזירים אותו לתוצאה.</p>
<p dir="auto">אלא שמ10 ואילך זה תוצאה שגויה כי זה מחזיר שורה 1, ובגלל שהטבלה מתחילה מחדש אז צריך לצאת שורה 4. בשביל זה צריך להוסיף לתוצאה אז פעמים החלוקות ב9.</p>
<p dir="auto">הנה קוד:</p>
<pre><code>function generateTable(cols, rows, total){
    const oneTable = cols * rows;
    for (let index = 0; index &lt; total; index++) {
        const current = index+1;
        
        const col = ((Math.ceil(current / rows) - 1)  % cols) + 1;
        const row = (index % rows) + 1 + Math.floor(index/oneTable) * rows;
        console.log(current, col, row);
    }
}
</code></pre>
]]></description><link>https://tchumim.com/post/152847</link><guid isPermaLink="true">https://tchumim.com/post/152847</guid><dc:creator><![CDATA[dovid]]></dc:creator><pubDate>Wed, 10 May 2023 01:03:51 GMT</pubDate></item></channel></rss>