Ruby编写rnd hex的最短路径

whi*_*win 2 ruby

我所拥有的是一种用于生成随机十六进制值的方法.例如666FF7

但是,我认为它看起来并不简单/优雅.我想要的是让它更简单,这也许会使我的代码更短,但我不知道如何.这就是我需要提示或提示的原因

到目前为止,这是我的代码:

def random_values
random_values = Array.new
letters = ['A','B','C','D','E','F']
for i in 1..15
  if i <= 9
    random_values << i
  else
    random_values << letters[i-10]
  end
end  
return random_values.shuffle[0].to_s + random_values.shuffle[0].to_s + random_values.shuffle[0].to_s
end
Run Code Online (Sandbox Code Playgroud)

正如您可能看到的,我不会生成随机数.我只是将包含我想要的值的数组洗牌,这意味着数组中的所有数字都是唯一的,这是不需要的,但在编写代码时对我来说是最简单的解决方案.

我最关心的是返回线 ..如果只有可能写的像:

return 3.times { random_values.shuffle[0] }
Run Code Online (Sandbox Code Playgroud)

要么

return random_values.shuffle[0].to_s *3

提前致谢!

Mik*_*ike 5

def random_value
     r = Random.new
     ((r.rand * 16)).to_i.to_s(16)
end

puts random_value + random_value + random_value
Run Code Online (Sandbox Code Playgroud)

或者,经过一些快速研究:

"%06x" % (rand * 0xffffff)
Run Code Online (Sandbox Code Playgroud)

Ruby中,生成随机的十六进制颜色

此外,您本身不应该寻找更有效的解决方案.您似乎在寻找更优雅,简单和直观的东西.(顺便说一下,我的解决方案都不是.搜索过的是.)

  • 性感......我认为这是优雅的绝佳代名词.我确信这是Dijkstra在发现最短路径算法时脱口而出的第一件事. (2认同)