AZ (Üst ve Küçük Harf) karakterlerini kullanarak her olası karakter kombinasyonunu (8 ile 16 arasında) çıkarmak hakkında nasıl bir çıkış yapılır? 0-9 arası rakamlar, alt çizgi ve dolar işaretleri gibi birkaç özel karakter kullanılır.Ruby 8 ile 16 karakter arasında her olası karakteri (AZ, az, 0-9) çıktı
-1
A
cevap
1
@tadman bu bizim güneş sistemimizin ömrü içinde tamamlamak olmaz, ancak teoride, bunu şöyle başarabileceğimizi, dediği gibi:
chars = [*:A..:Z, *:a..:z, *0..9, ?$, ?_]
(8..16).each do |n|
chars.permutation(n) do |a|
puts a.join
end
end
Eğer çıktı satır sayısını hesaplamak isterseniz
(8..16).reduce(0) {|sum,n| sum + chars.permutation(n).size }
Not: başlamadan önce permutation
, combination
, repeated_permutation
ve repeated_combination
: karakter "kombinasyonlarını" almak için dört Array
yöntem vardır. Doğru "kombinasyonlar" grubunu aldığınızdan emin olmak için dokümanları kontrol etmeli veya deney yapmalısınız.
Bu programı kaç yıl çalıştırmak zorundasınız? Burada 62^16 olasılık var. Saniyede milyar iterasyonla yaklaşık 1.5 trilyon yıl. – tadman
Yığın Taşması'na Hoş Geldiniz. Buraya sormanın yanı sıra buna ne tür bir çaba harcadınız? Bu bir ödev mi? –