Ruby 给定任意数字,获得1到10之间的一致值

Ruby 给定任意数字,获得1到10之间的一致值,ruby,Ruby,如何将任何数字转换为介于1和10之间的值 例如,给定123,执行每次返回1到10之间相同值的操作 我用它来分配10种不同的颜色给用户的ID。我需要一个函数,将始终为该用户的ID提供相同的1-10颜色值 我想我可以使用模运算符来处理类似的问题,但还没有弄明白。你可以使用模10,然后添加一个(因为模范围是独占的): 如果希望得到更少的循环结果,可以在应用模数之前对数字进行散列: (123.to_s.hash % 10) + 1 # => 10 (124.to_s.hash % 10) + 1

如何将任何数字转换为介于1和10之间的值

例如,给定123,执行每次返回1到10之间相同值的操作

我用它来分配10种不同的颜色给用户的ID。我需要一个函数,将始终为该用户的ID提供相同的1-10颜色值


我想我可以使用模运算符来处理类似的问题,但还没有弄明白。你可以使用模10,然后添加一个(因为模范围是独占的):

如果希望得到更少的循环结果,可以在应用模数之前对数字进行散列:

(123.to_s.hash % 10) + 1 # => 10
(124.to_s.hash % 10) + 1 # => 7

您可以使用模数10,然后添加一个(因为模数范围是独占的):

如果希望得到更少的循环结果,可以在应用模数之前对数字进行散列:

(123.to_s.hash % 10) + 1 # => 10
(124.to_s.hash % 10) + 1 # => 7

您可以使用模数10,然后添加一个(因为模数范围是独占的):

如果希望得到更少的循环结果,可以在应用模数之前对数字进行散列:

(123.to_s.hash % 10) + 1 # => 10
(124.to_s.hash % 10) + 1 # => 7

您可以使用模数10,然后添加一个(因为模数范围是独占的):

如果希望得到更少的循环结果,可以在应用模数之前对数字进行散列:

(123.to_s.hash % 10) + 1 # => 10
(124.to_s.hash % 10) + 1 # => 7

太棒了,当计时器启动时会接受。有没有办法使同一组10中的连续值不返回相同的值?对于第二个示例,(
(123.to_.hash%10)+1#=>10
),每次重新加载解释器时,我都会得到不同的结果。也许可以尝试将这个数字乘以任意数字(7?),然后模10。当定时器启动时,我们会接受。有没有办法使同一组10中的连续值不返回相同的值?对于第二个示例,(
(123.to_.hash%10)+1#=>10
),每次重新加载解释器时,我都会得到不同的结果。也许可以尝试将这个数字乘以任意数字(7?),然后模10。当定时器启动时,我们会接受。有没有办法使同一组10中的连续值不返回相同的值?对于第二个示例,(
(123.to_.hash%10)+1#=>10
),每次重新加载解释器时,我都会得到不同的结果。也许可以尝试将这个数字乘以任意数字(7?),然后模10。当定时器启动时,我们会接受。有没有办法使同一组10中的连续值不返回相同的值?对于第二个示例,(
(123.to_.hash%10)+1#=>10
),每次重新加载解释器时,我都会得到不同的结果。也许试着将这个数乘以任意数(7?),然后模10。