Опишем простую процедуру. Выберем натуральное число N от 1 до 99 и сопоставим ему число, равное количеству букв в записи N в виде слова какого-то языка. Для полученного числа снова повторим эту операцию. Для русского языка получается довольно симпатичное дерево, в котором есть три цикла 3→3, 11→11 и 6→5→4→6.

Интересно, что в английском языке не более, чем за пять шагов мы придем к 4 и зациклимся.
Вот пример короткого кода на Ruby, производящего нужный нам граф для английского языка

Аналогично устроен код для французского языка
В этом случае мы приходим к циклу 5→4→6→3→5.


Интересно, что в английском языке не более, чем за пять шагов мы придем к 4 и зациклимся.
Вот пример короткого кода на Ruby, производящего нужный нам граф для английского языка
require 'humanize' require 'rgl/adjacency' require 'rgl/dot' result = RGL::DirectedAdjacencyGraph.new 1.upto(99) { |i| result.add_edge(i.to_s, i.humanize(locale: :en).length.to_s) } result.dotty

Аналогично устроен код для французского языка
result = RGL::DirectedAdjacencyGraph.new 1.upto(99) { |i| result.add_edge(i.to_s, i.humanize(locale: :fr).length.to_s) } result.dotty
В этом случае мы приходим к циклу 5→4→6→3→5.

