Score:0

รับ bit i เมื่อ modulo n

ธง jo

มีวิธีการกู้คืนลำดับบิตของตัวเลข (เช่น 29 = 0b11101) โดยหารด้วย 2 เสมอเมื่ออยู่ใน mod 143 หรือไม่

สิ่งที่ฉันหมายถึงคือการกู้คืนจำนวนทีละนิดโดยการคูณด้วยส่วนผกผันของ 2 mod 143 เพื่อจำลองการหาร /2 ตัวอย่างเช่น:
$\begin{อาร์เรย์}{} &29\bmod143=&29&\equiv 1 \pmod 2\ 29\cdot(2^{-1}\bmod143)^1\bmod143=&29\cdot72^1\bmod143=&86&\equiv0\pmod2\29\cdot(2^{-1}\bmod143)^2\bmod143 =&29\cdot72^2\bmod143=&43&\equiv1\pmod2\ 29\cdot(2^{-1}\bmod143)^3\bmod143=&29\cdot72^3\bmod143=&93&\equiv1\pmod2\ 29\cdot(2^{-1}\bmod143)^4\bmod143=&29\cdot72^4\bmod143=&118&\equiv0\pmod2\ \end{อาร์เรย์}$

เราจะเห็นว่าลำดับที่ฉันได้รับนั้นถูกต้องจนถึงบิตที่ 5 ซึ่งควรจะเป็น $1$. ฉันเข้าใจผิดอะไรที่นี่

fgrieu avatar
ng flag
สัญกรณ์ $aâ¡b\pmod m$ หมายความว่า $b-a$ เป็นผลคูณของ $m$ ตรงนี้ $\bmod$ จะปรากฏต่อจาก $($, และสามารถมีได้เพียงอันเดียวทางด้านขวาของคำสั่ง เช่น $aâ¡bâ¡câ¡d\pmod m$ ซึ่งหมายถึง $aâ¡b\pmod m $ และ $bâ¡c\pmod m$ และ $câ¡d\pmod m$ ซึ่งแตกต่างจากการใช้งานใน $a\bmod m$ โดยที่ $\bmod$ เป็นตัวดำเนินการที่ปรากฏต่อจากจำนวนเต็มทันทีและเป็นผลลัพธ์ จำนวนเต็มที่กำหนดเฉพาะ $x$ กับ $0\le x
Score:1
ธง ng

เห็นได้ชัดว่าคำถามมีจุดประสงค์เพื่อค้นหาสิ่งที่ต้องการ: การแสดงบิตของจำนวนเต็ม $a$ เมื่อทำงานโมดูโล $m$. สิ่งนี้ไม่ได้กำหนดไว้อย่างดี เราจะสมมติว่ามันต้องการตัวแทนบิตของจำนวนเต็มแทน $a\bmodm$.

โดยนิยามจำนวนเต็ม $a\bmodm$ เป็นจำนวนเต็ม $r$ กับ $0\le r<m$ และ $a-r$ หลายรายการ $m$. เมื่อไร $a\ge 0$, นี้ $r$ คือส่วนที่เหลือของการแบ่งเงินปันผลแบบยุคลิด $a$ โดยตัวหาร $m$ให้ผลหารผลหารจำนวนเต็ม $คิว$ และส่วนที่เหลือ $r$, ดังนั้น $0\le r<m$ และ $a=m\cdot q+r$.

เพื่อให้ได้การแสดงจำนวนเต็มฐานที่ไม่เป็นลบ $b\ge2$ (กับ $b=2$ สำหรับการแทนค่าบิต) วิธีมาตรฐานคือการหารแบบยุคลิดต่อเนื่องด้วยตัวหาร $ข$ด้วยการปันผลครั้งแรกเป็นจำนวนเต็มที่ไม่เป็นลบดังกล่าว จากนั้นจึงปันผลที่ตามมาด้วยผลหารที่ได้จากการหารแบบยุคลิดก่อนหน้า ทำซ้ำจนกว่าผลหารจะเท่ากับ $0$. เศษที่เหลือที่ตามมาคือตัวเลขที่ต้องการของการเป็นตัวแทน โดยตัวเลขที่มีนัยสำคัญน้อยที่สุดจะได้ก่อน และมักจะเขียนทางด้านขวา

ดังนั้นเมื่อเราต้องการแทนค่าบิตของ $29\bสมัย 143$ก่อนอื่นเราทราบว่า $0\le29<143$, ดังนั้น $29\bmod 143=29$. เราไม่ต้องการอีกต่อไป $143$. เราแค่ต้องการเป็นตัวแทนของ $29$ ในฐาน $2$. พวกเราเขียน

    29 = 2 * 14 + 1
    14 = 2 *  7 + 0
     7 = 2 *  3 + 1
     3 = 2 *  1 + 1
     1 = 2 *  0 + 1

เศษที่ได้รับคือจำนวนเต็มสุดท้ายในแต่ละบรรทัด และให้นิพจน์ฐานสองของ $29$, นั่นคือ 11101โดยคนแรกได้รับทางด้านขวา


บิตที่ดัชนี $i$ จากด้านขวา (เริ่มต้นที่ดัชนี $i=0$, นั่นคือ ${i+1}^\text{th}$ บิต) ของ $a\bmodm$ สามารถรับเป็น $$\left\lfloor\frac{a\bmod m}{2^i}\right\rfloor\bmod2\tag{1}\label{fgrieueq1}$$

วิธีการในคำถามแทนการใช้ $$\left(a\cdot(2^{-1}\bmod m)^i\bmod m\right)\bmod 2$$ ซึ่งกำหนดไว้สำหรับคี่ $m$ เท่านั้น และเมื่อสามารถเขียนใหม่ได้ (โดยมีนามสกุลเป็น$\bmod$สัญกรณ์เพื่อให้ครอบคลุมเศษส่วน) $$\left(\frac ก{2^i}\bmod m\right)\bmod2$$ ซึ่งค่อนข้างคล้ายกับ \eqref{fgrieueq1} แต่ใช้งานไม่ได้อย่างน่าเชื่อถือ $i=0$. ตัวอย่างเช่น มันล้มเหลวทุกครั้ง $i=1$, $m=2^k+1$ กับ $k>1$และคี่ $a$ กับ $0<a<m$. เนื่องจากวิธีการดังกล่าวไม่มีเหตุผลรองรับ จึงไม่ต้องการการพิสูจน์ที่นอกเหนือไปจากตัวอย่างที่โต้แย้ง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา