Tôi đang cố gắng xây dựng một công thức nhỏ (hoặc có lẽ không quá nhỏ) sẽ chứa các số giữa một phút và tối đa, nhưng cũng lặp lại những con số này để chúng không bị cắt bớt nếu chúng nằm ngoài phạm vi. cho đến nay, đây là những gì tôi có.Math Looping giữa Min và Max Sử dụng Mod?
min1 = 10
max1 = 90
val1 = 92
//will make 11, which is what i want since it loops
formula: min(max(min1,min(val1,max1)),mod(val1,max1)+min1)
Tuy nhiên, tôi muốn nó để lặp theo một hướng khác cũng có, do đó nếu VAL1 là 5, mà là -5 ngoài min1, nó sẽ trở thành 86.
một vấn đề khác tôi chạy vào đó là
max1 % max1 != max1
như tôi muốn nó, vì max là một phần của dãy
cố gắng để được rõ ràng, đây là một số ví dụ về các đầu ra mong muốn dựa trên một loạt với looping
min1 = 10
max1 = 90
----------------------------------------------
val1 = 30 //within range: stays as 30
val1 = 90 //within range: stays as 90
val1 = -6 //below range: loops to becomes 75
val1 = 98 //above range: loops to becomes 17
val1 = 91 //above range: loops to becomes 10
tôi muốn không sử dụng hàng loạt câu lệnh if/else, nhưng sẽ ổn nếu hoàn toàn bắt buộc. thậm chí có thể không?
Tôi nghĩ rằng ví dụ cuối cùng của bạn nên được 17 chứ không phải 18 kể từ khi bạn nên đếm 10 quá. Phải không? Bạn thực sự muốn 91 được 11 và không 10 trong khi 90 là 90? –
90 có còn 90 và 91 trở thành 11 trong ví dụ của bạn không? Chẳng có gì trở thành 10 rồi sao? Điều gì sẽ xảy ra với 170? Nó có trở thành 90 hay 10 không? Điều này khá lạ "looping". Ngoài ra, làm thế nào có thể -6 trở thành 84? -6 là 16 số xa tối thiểu, vì vậy nó phải là khoảng 90-16 = 74, hoặc những gì? – Rotsor
oh .. ha ... yeah, tôi hoàn toàn viết sai. -6 nên 74, không phải 84. xin lỗi. – TheDarkIn1978