|
สมัครสมาชิก | คู่มือการใช้ | รายชื่อสมาชิก | ปฏิทิน | ข้อความวันนี้ | ค้นหา |
|
เครื่องมือของหัวข้อ | ค้นหาในหัวข้อนี้ |
#1
|
|||
|
|||
ช่วยหาวิธีคำนวณหาค่า X หน่อยครับ มืดแปดด้าน
(x Mod (256 * 256)) + ((x / (256 * 256) Mod 256) * 100000) = 15121591
ด้านบนเป็นสมการ ที่ทาง บริษัทที่จีนให้มาเพื่อ เข้ารหัส ที่นี้ถ้าเราป้อนในโปรแกรมเข้าไปด้วยค่า 9917527 แทนค่า X ค่าในสูตร จะได้คำตอบ 15121591 แทนค่า ( 9917527 Mod (256 * 256)) + (ปัดเศษลง( 9917527 / (256 * 256) Mod 256) * 100000) = 15121591 ที่นี้ในมางกลับกันถ้าผมมีแค่ค่าคำตอบ 15121591 สามารถคิดย้อนกลับหาค่า X ได้ไหมครับ หรือใกล้เคียงที่สุด ค่า x จะต้องได้ 9917527 ขอบคุณครับ 01 กรกฎาคม 2019 09:13 : ข้อความนี้ถูกแก้ไขแล้ว 3 ครั้ง, ครั้งล่าสุดโดยคุณ ออฟ |
#2
|
||||
|
||||
ยังไม่เข้าใจโจทย์อะครับ ช่วยอธิบายเพิ่มหน่อยได้ไหมครับ
|
#3
|
|||
|
|||
(x Mod (256 * 256)) + ((x / (256 * 256) Mod 256) * 100000) = 15121591
ด้านบนเป็นสมการ ที่ทาง บริษัทที่จีนให้มาเพื่อ เข้ารหัส ที่นี้ถ้าเราป้อนในโปรแกรมเข้าไปด้วยค่า 9917527 แทนค่า X ค่าในสูตร จะได้คำตอบ 15121591 แทนค่า ( 9917527 Mod (256 * 256)) + (ปัดเศษลง( 9917527 / (256 * 256) Mod 256) * 100000) = 15121591 ที่นี้ในมางกลับกันถ้าผมมีแค่ค่าคำตอบ 15121591 สามารถคิดย้อนกลับหาค่า X ได้ไหมครับ หรือใกล้เคียงที่สุด ค่า x จะต้องได้ 9917527 ขอบคุณครับ |
#4
|
||||
|
||||
อ้างอิง:
ไม่แน่ใจว่าต้องหาทั้งหมดด้วยรึเปล่า 01 กรกฎาคม 2019 18:33 : ข้อความนี้ถูกแก้ไขแล้ว 2 ครั้ง, ครั้งล่าสุดโดยคุณ Amankris |
#5
|
|||
|
|||
แทนค่าได้ครับ ว่าแต่ขอตัวอย่าง แก้สมการให้ดูหน่อยครับ ถ้าคำตอบ= 5355507 x จะได้ค่าเท่าไรครับ
|
#6
|
|||
|
|||
ดูๆ ไป นึกถึงเลขฐานสองหรือฐานสิบหกในคอมพิวเตอร์ โดย $256 = 2^8$ ก็คือ 8 bit หรือเลขฐานสิบหก 2 หลัก (bit = binary digit จำนวนหลักของเลขฐานสอง) ถ้า $256*256 = 2^8*2^8 = 2^{16}$ ก็คือ 16 บิต หรือเลขฐานสิบหก 4 หลัก
ผมมองว่า (x Mod (256 * 256)) คือการเอาเฉพาะ 16 บิตด้านขวาสุดของ x (ถ้าเป็นเลขฐานสิบหก ก็ 4 หลัก) ส่วน x / (256 * 256) คือการเอา x มาเลื่อน (shift) บิตไปทางขวา 16 บิต จากนั้น Mod 256 อีกครั้ง คือการเอาเฉพาะ 8 บิตขวาสุด (ถ้าเป็นเลขฐานสิบหก ก็ 2 หลัก แสดงว่า x เป็นเลขฐานสิบหก จำนวน 6 หลัก) จากนั้นเอามาคูณ 100000 (เลขฐานสิบ) 15121591 = 21591 + 15100000 21591 เมื่อแปลงเป็นเลขฐานสิบหก ได้ 0x5457 ส่วน 15100000 หาร 100000 ได้ 151 แปลงเป็นเลขฐานสิบหก ได้ 0x97 เอามาต่อกันได้ = 0x975457 = 9917527 ขออภัยถ้าใช้ภาษาคอมพิวเตอร์เยอะไปหน่อย เพิ่มๆ ถ้าคำตอบ= 5355507 53=0x35 55507=0xD8D3 คำตอบคือ 0x35D8D3 = 3528915 15 กรกฎาคม 2019 20:47 : ข้อความนี้ถูกแก้ไขแล้ว 1 ครั้ง, ครั้งล่าสุดโดยคุณ ohmohm |
#7
|
|||
|
|||
อ้างอิง:
|
|
|