С Новым годом! Форум программистов, компьютерный форум, киберфорум
Ruby
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 16

Продолжить последовательность

15.09.2012, 19:46. Показов 3594. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу программу которая должна выводить последовательность, но никак не пойму что сделал не так Т_Т
Последовательность: 1 11 21 1211 ...
Суть: каждый след. элемент последовательности связан с предыдущим, т.е.
1, одна единица (11), две единицы (21), одна двойка одна единица (1211) и т.д.

вот что за каша получилась у меня)
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
s = [1]
k = 0
re = [2, 1]
po = 0
go = 0
te = []
ki = 0
a = 1
while po<=10
puts re.join()
while go != re.length
        if re[k] == re[k + 1]
            s[k] = a + 1
            a =a + 1
            go = go + 1
        else 
            s[k] = 1
            a = 1
        end 
 
            te[ki + 1] = re[k]
            te[ki] = s[k].to_s
            go = go + 1
    k = k + 1
    ki = ki + 2
end
k = 0
ki = 0
go = 0
po = po + 1
re = te
end
Помогите прошу Т_Т

Добавлено через 3 часа 2 минуты
Я немного исправил, однако число все ровно как то не правильно считается((

Help me!

Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
s = [1]
k = 0
re = [1, 1]
po = 0
go = 0
te = []
ki = 0
a = 1
i = 0
tt = 0
while po<=10
    puts re.to_s
while i < re.length
if re[i] == re[i + 1]
    tt = tt + 1
end
i = i + 1
end
    yoo = re.length - tt
    puts yoo
    while go != yoo 
        if re[k] == re[k + 1]
            s[k] = a + 1
            a =a + 1
        else 
            s[k] = 1
            a = 1
        end 
 
        te[ki + 1] = re[k]
        te[ki] = s[k]
        go = go + 1
        k = k + 1
        ki = ki + 2
    end
    k = 0
    ki = 0
    go = 0
    po = po + 1
    re = te
i = 0
tt = 0
end
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.09.2012, 19:46
Ответы с готовыми решениями:

Продолжить последовательность 1, 11
Помогите пожалуйста продолжить последовательность 1, 11(одна однерка), 21(две однерки), 1211(одна двойка, одна однерка)... никак не...

Продолжить последовательность чисел
Здравствуйте. Есть последовательность чисел: 1,1,3,5,9,15,25,41,67,109,177... Нужно определить формулу для подсчета n-го числа. ...

Дана последовательность двухзначных чисел 24, 81, 63, 26, 41,... Продолжить ее
Дана последовательность двухзначных чисел 24, 81, 63, 26, 41,... Продолжить ее. Найти правило формирования последующих членов.

6
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
15.09.2012, 22:35
Ruby
1
2
3
4
5
6
7
8
9
10
11
value = '1'
puts value
10.times do
  digit_counter = Array.new(10, 0)
  value.chars.each{ |c| digit_counter[c.to_i]+=1 }
  value = ''
  digit_counter.each_with_index do |count, index| 
    value << "#{count}#{index}" if count>0 
  end
  puts value
end
Дает не точь-в-точь результат как у вас (перечисляет цифры в порядке возрастания, а не следования), но возможно условия задачи не так строги. В противном случае нужно будет переделать на хэши.

Добавлено через 35 минут
вот вариант с хэшами (в руби 1.9 гарантирует порядок следования)
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
value = '1'
puts value
10.times do
  next_value = value.chars.inject({}) do |hash, next_char|
    if hash.has_key?(next_char)
      hash[next_char] += 1
    else
      hash[next_char] = 1
    end
    hash
  end
  value = ''
  next_value.each_pair { |k, v| value << "#{v}#{k}" }
  puts value
end
0
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 16
16.09.2012, 00:05  [ТС]
Получилось не совсем то...
в оригинале должно выглядеть так:
Ruby
1
2
3
4
5
6
7
8
1
11
21
1211
111221
312211
13112221
...
в Вашем 1 коде получается:
Ruby
1
2
3
4
5
6
7
8
1
11
21
1112
3112
211213
312213
...
С хэшем так:
Ruby
1
2
3
4
5
6
7
8
1
11
21
1211
3112
132112
311322
...
В обоих случаях последовательность теряется
Сталкнулся с той же проблемой, т.ч. решил делать через массив где четные эл. массива количество, а не четные само число.

Но что-то не выходит(
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
16.09.2012, 01:03
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
value = '1'
puts value
10.times do
  next_value = value.chars.inject([]) do |arr, next_char|
    if !arr.empty? && arr.last.has_key?(next_char)
      arr.last[next_char] += 1
    else
      arr << {next_char => 1}
    end
    arr
  end
  value = next_value.map{ |hash| hash.invert }.to_s
  puts value
end
0
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 16
16.09.2012, 12:22  [ТС]
может у меня что то не так стоит, но тут вообще весь экран однерками покрылся Т_Т
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
16.09.2012, 13:27
упс, оказывается тут разошлись классический руби и jruby, который у меня в NetBeans
вот версия для MRI 1.9
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
value = '1'
puts value
10.times do
  next_value = value.chars.inject([]) do |arr, next_char|
    if !arr.empty? && arr.last.has_key?(next_char)
      arr.last[next_char] += 1
    else
      arr << {next_char => 1}
    end
    arr
  end
  value = ''
  next_value.map do |hash| 
    hash.each_pair{ |k,v| value << "#{v}#{k}" }
  end
  puts value
end
1
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 16
16.09.2012, 13:47  [ТС]
Спасибо большое ^_^ очень признателен за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.09.2012, 13:47
Помогаю со студенческими работами здесь

Продолжить последовательность и составить программу, печатающую N чисел данной последовательности:
21, 20, 18, 15, 11, 6, ___, ___

Продолжить последовательность и составить программу, печатающую N чисел данной последовательности
Продолжить последовательность и составить программу, печатающую N чисел данной последовательности: 1, 11, 20, 28, 35, 41, 46, _, _

Продолжить (y\n) ?
cout &lt;&lt; &quot;Продолжить (y\n) ? &quot;; Как сделать чтобы \n не переводил строку , а выводился в одной строке вместе с Продолжить...

продолжить начатое
Привет Друзья можете помочь продолжить Очень надо. Вложение заблокировано за нарушение пункта 5.18 правил форума. Текст задания...

Как продолжить?
Здравствуйте! Есть огромное желание изучить с++... В интернете наткнулся на неплохие видеоуроки по visual c++ от teachvideo, может кто...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru