ซอฟต์แวร์การสร้างแบบจำลอง 3 มิติส่วนใหญ่ใช้การทำแผนที่ UVเพื่อทำแผนที่พื้นผิวไปยังวัตถุ 3 มิติ ค่าที่ถูกต้องสำหรับทั้ง U และ V มักจะอยู่ใน[0..1]ช่วงรวม
ท้าทาย
คุณซื้อซอฟต์แวร์การสร้างแบบจำลอง 3 มิติใหม่ซึ่งใช้งานง่ายสุด ๆ อย่างไรก็ตามมีปัญหาหนึ่งเรื่อง: เพิ่มหรือลบหมายเลขจำนวนเต็มแบบสุ่มจากค่า UV งานของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่ปรับเปลี่ยนค่าอินพุตเพื่อรับค่าทศนิยมใน[0..1]ช่วงรวม
ทุ่นที่เกิดขึ้นควรมีส่วนที่เป็นเศษส่วนเหมือนกับของจริงและใกล้เคียงกับของจริงมากที่สุด เนื่องจากทั้งคู่0และ1อยู่ในช่วงเอาต์พุตจำนวนเต็มใด ๆ 0 หรือน้อยกว่าควรเปลี่ยนเป็น 0 และจำนวนเต็ม 1 หรือมากกว่านั้นควรเปลี่ยนเป็น 1
อัลกอริทึมตัวอย่างใน JavaScript:
function modFloat(input) {
while (input < 0 || input > 1) {
if (input < 0) input += 1;
if (input > 1) input -= 1;
}
return input;
}
กฎระเบียบ
- อินพุตเป็นจำนวนเต็มหรือค่าลอยเดียว รูปแบบที่เหมาะสมใด ๆ ที่ได้รับอนุญาตตราบใดที่มันระบุไว้ในคำตอบของคุณ
- ผลลัพธ์ควรเป็นตัวแทนทศนิยมของค่าลอย
- ความแม่นยำของเอาต์พุตควรเป็นทศนิยมอย่างน้อยเดียวกันกับอินพุต
- อนุญาตเลขศูนย์ต่อท้าย
- ตรวจสอบให้แน่ใจว่ารหัสของคุณถูกต้องเลือกว่า 0 หรือ 1 เพื่อส่งออกสำหรับอินพุตจำนวนเต็ม
กรณีทดสอบ
Input | Output
------------+---------
-4 | 0
-1 | 0
0 | 0
1 | 1
2 | 1
1.0001 | 0.000100
678.123456 | 0.123456
-678.123456 | 0.876544
4.5 | 0.5
นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ!
any reasonable input format is allowedดังนั้นฉันจะพูดว่า "ทำไมไม่"