起点数值为 3600,最小变量为 5,变大或者变小的概率各为 50%,请生成这样的数列。例如:3600,3605,3600,3595,3590.....
在此跪谢。
等差数列,变化范围是 1000~7000 加上这个条件
result_arr = [] var = 3600 diff = [5, -5] while true var += diff.shuffle.first result_arr.push(var) end
这不是算法题啊 瞎写的,凑活用,根据你的需要改改
我不知道这个题目有什么实际的意义,反正我是无聊,跑了 185103 次才到达边界条件。。。
def get_array(min_num = 1000, max_num = 7000, add_num = 3600, array = []) while (min_num..max_num).to_a.include? add_num array << add_num add_num += [5, -5].shuffle.first end array end
棒棒的,已经解决了,现在默认为 sample 这个方法了。再次感谢。