Advertisement
heroofhyla

markov_names.rb

Jan 15th, 2017
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.01 KB | None | 0 0
  1. # Markov chain name generator
  2. # Author: Michael Stroud
  3. # Generates a list of 100 names using Markov chains based on a source list of
  4. # real names. The real names list should be in a file called "first_names.rb"
  5. # in the same folder as this script.
  6. #
  7. # No warranty, express or implied. I hope it's useful, but I make no promises.
  8. #
  9. # Permission is granted to modify and redistribute, but do not remove any of
  10. # these comments.
  11.  
  12. require './first_names.rb'
  13.  
  14. markov_name = ""
  15. 100.times do
  16.   names_array = Names.names.split("\n")
  17.   markov_name = names_array.sample[0]
  18.   loop do
  19.     split_str = markov_name[markov_name.length - 1]
  20.     if markov_name.length > 1
  21.       split_str.prepend(markov_name[markov_name.length - 2])
  22.     end
  23.     names_array = Names.names.split(split_str)
  24.     names_array.shift
  25.     next_sample = names_array.sample
  26.     if next_sample.length > 0
  27.       next_char = next_sample[0]
  28.       break if next_char == "\n"
  29.       markov_name << next_char
  30.     end
  31.   end
  32.   puts markov_name
  33. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement