我试图从一个大文件(> 百万行)中选择一个随机行,而不是选择任何重复项。如果有骗子,那么我想继续挑选更多,直到找到非骗子。
到目前为止我得到了什么:
@already_picked = []
def random_line
chosen_line = nil
chosen_line_number = nil
File.foreach("OSPD4.txt").each_with_index do |line, number|
if rand < 1.0/(number+1)
chosen_line_number = number
chosen_line = line
end
end
chosen_line
if @already_picked.include(chosen_line_number)?
# what here?
else
@already_picked << chosen_line_number
end
end
100.times do |t|
random_line
end
我不确定在if
条款中该怎么做