Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby: Общие вопросы > Массивы: вывод элементов


Автор: Rname 20.1.2010, 19:46
Вопрос достаточно простой, но пока не нашел для него решения:
Пусть есть массив всех 10ти цифр [0..9]
Нужно: вывести все возможные комбинации четырехзначных чисел.
При этом важно, чтобы вывод был ПОСЛЕДОВАТЕЛЬНЫМ (т.е. 1111, затем 1112, 1113 и т.д.), НЕСЛУЧАЙНЫМ, и главное - охватывал бы ВСЕ возможные комбинации.
Сразу скажу, что посчитать факториал - нетрудно: мне интересен алгоритм именно вывода.
Заранее всем спасибо.

Автор: bilbobagginz 26.1.2010, 22:08
Rname, нужно чтобы тема отражала суть вопроса.
твой вопрос - комбинаторный, и очень похож на школьный..
Цитата(Rname @  20.1.2010,  18:46 Найти цитируемый пост)
Сразу скажу, что посчитать факториал - нетрудно

да это так, но факториал чего ты собирался подсчитать ?


Автор: source777 27.1.2010, 15:03
Цитата(Rname @  20.1.2010,  19:46 Найти цитируемый пост)
Пусть есть массив всех 10ти цифр [0..9]
Нужно: вывести все возможные комбинации четырехзначных чисел.
При этом важно, чтобы вывод был ПОСЛЕДОВАТЕЛЬНЫМ (т.е. 1111, затем 1112, 1113 и т.д.), НЕСЛУЧАЙНЫМ, и главное - охватывал бы ВСЕ возможные комбинации.

Код

(1000..9999).each{|i| puts i}

 smile 

Автор: shine 27.1.2010, 15:55
source777, ну и нафига ты тему спалил? Человек всего неделю над "алгоритмом" думал... smile

p.s. Кстати не 1000, а 1111.

Автор: source777 27.1.2010, 16:05
Цитата(shine @  27.1.2010,  15:55 Найти цитируемый пост)
p.s. Кстати не 1000, а 1111.

ну это топикстартер с чего-то так решил, что первое число 1111, а по мне так 1000 тоже является четырехзначным числом из комбинации цифр от 0 до 9. Разве нет?

Автор: Rname 1.2.2010, 15:39
Цитата(shine @ 27.1.2010,  15:55)
source777, ну и нафига ты тему спалил? Человек всего неделю над "алгоритмом" думал... smile

p.s. Кстати не 1000, а 1111.

собственно - а зачем тогда форум?
тем более, что на вопрос, по существу так и не ответили.

Добавлено через 5 минут и 37 секунд
Цитата(source777 @ 27.1.2010,  15:03)
Цитата(Rname @  20.1.2010,  19:46 Найти цитируемый пост)
Пусть есть массив всех 10ти цифр [0..9]
Нужно: вывести все возможные комбинации четырехзначных чисел.
При этом важно, чтобы вывод был ПОСЛЕДОВАТЕЛЬНЫМ (т.е. 1111, затем 1112, 1113 и т.д.), НЕСЛУЧАЙНЫМ, и главное - охватывал бы ВСЕ возможные комбинации.

Код

(1000..9999).each{|i| puts i}

 smile

Цитата

(1000..9999).each{|i| puts i}

Спасибо за ответ: за рубиВЭЙ, так сказать smile 
 И все же - это не совсем то: 
ведь такие варианты как 0001, 0010, 0990 и т.д. не выводятся. 
и поэтому уже с 7-9значными числами слишком много "неучтенных".
может быть есть предложение?

Автор: fixxer 2.2.2010, 12:32
Код

(0..9999).each { |i| puts "%04d" % i }

Автор: Rname 2.2.2010, 16:39
Цитата(fixxer @ 2.2.2010,  12:32)
Код

(0..9999).each { |i| puts "%04d" % i }

Цитата

(0..9999).each { |i| puts "%04d" % i }

Спасибо.

Добавлено через 2 минуты и 26 секунд
Всем спасибо. Вопрос закрыт (для меня по крайней мере). smile 

Автор: source777 3.2.2010, 20:13
Цитата(Rname @  1.2.2010,  15:39 Найти цитируемый пост)
ведь такие варианты как 0001, 0010, 0990 и т.д. не выводятся.

 smile 
Это с каких пор 0001, 0010, 0990 стали четырёхзначными числами? Ты уроки математики в школе прогуливал что ли?
Напоминаю, что разрядностью числа называется количество числовых разрядов, необходимых для записи этого числа.

Автор: bilbobagginz 7.2.2010, 12:50
Цитата(Rname @  1.2.2010,  14:39 Найти цитируемый пост)
ведь такие варианты как 0001, 0010, 0990 и т.д. не выводятся. 

выводятся и очень просто:
  • берем 1 флакон "Дихлофоса"
  • одеваем противогаз/покрасочную маску/или просто влажную тряпку на морду лица
  • брызгаем туда где эти 0001, 0010, 0990 и т.д. водятся
  • уходим из дома на 1 сутки
  • по возвращении не забываем проветрить квартиру!
voila! всех вывели!

P.S. к счастью за сутки можно посчитать много факториалов!

Автор: sharpromka 22.3.2010, 01:14
Весела я темка вышла, но с етим сложнейшим алгоритмом прикол вышел.... Начал учить Ruby, после строгих языков и просто в шоке...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)