Pull to refresh

Выберите число от 1 до 99

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

image


Интересно, что в английском языке не более, чем за пять шагов мы придем к 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.
Tags:
Hubs:
+3
Comments 31
Comments Comments 31

Articles