1から99までの数字を選択してください

簡単な手順を説明します。 1から99までの自然数Nを選択し、それをある言語の単語の形でレコードN内の文字数と等しい数と比較します。 結果の数値について、この操作を再度繰り返します。 ロシア語の場合、3→3、11→11、6→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になります。

Source: https://habr.com/ru/post/J320638/


All Articles