Markov-Chains
Markov-Chains
seen from United States

seen from United States
seen from Türkiye

seen from United States
seen from United States

seen from Austria
seen from Finland

seen from South Africa

seen from Germany

seen from Germany
seen from United States

seen from United States

seen from Türkiye
seen from China
seen from Türkiye

seen from Germany
seen from Russia

seen from Türkiye
seen from Netherlands

seen from Türkiye
Markov-Chains
Markov-Chains
Markov chain name algorithm
Compared to the algorithm described in the previous post, the Markov Chain algorithm is slightly more complex.
Explanation:
The first thing you'll have to do before the algorithm is usable, is to build a rule set. This can be done by using the following algorithm using a Dictionary<string, List<string>>. The algorithm requires 2 parameters: a sequence of strings, from which to build the rules, and the step-size:
Rule-set algorithm
After this rule-set has been build, you can use it to generate names with using the generation algorithm:
Generation algorithm
The generation algorithm works as follows:
Randomly select a starting rule from the rule-set.
While there are other rules to choose from:
Pick a random next rule.
Check if this is the end of the name.
If this is not the end: Increase the chance of the name ending
Advantages:
From an existing list of names you can generate a lot of new names.
Disadvantages:
More difficult to implement.
Names are not always good enough.
You can not generate names of a pre-determined size
Remarks:
I don't think this generation algorithm is good enough to be used, unless you have a larger step-size, which will lead to words that are more alike to those in the data-sequence you provided. In the following posts I will show some improvements to this algorithm, that will hopefully allow us to generate better names.
Output:
Markov chain name generation (output)
As you can see from this output: The higher the step-size, the better the generated names. Obviously this is because you use larger parts from the original names, therefore reducing the maximum amount of different names you can generate using the dictionary.
References:
Godpaterns