3 / 3 / 1
Регистрация: 24.01.2011
Сообщений: 61

Цепь из 98 звеньев, 7 цветов

14.03.2011, 20:39. Показов 2505. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как можно решить такую задачу на бумаге? (Можно не решать, достаточно подробного алгоритма)

Цепь, длиной в 98 звеньев, состоит из последовательности фрагментов (из 7 звеньев каждый), окрашенных в цвета в соответствии с расположением цветов в радуге (Красный, Оранжевый, Желтый, Зеленый, Голубой, Синий, Фиолетовый). Таким образом, после фиолетового звена опять идет красное звено, затем оранжевое и т.д. В этой цепи, двигаясь по ней от начала к концу, удалили каждое четвертое звено. Затем в получившейся цепи опять удалили каждое четвертое звено, двигаясь от начала к концу. Эту операцию повторяли, пока не получилась цепь из пяти звеньев. Какого цвета четвертое и пятое звено в этой цепи?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.03.2011, 20:39
Ответы с готовыми решениями:

Есть н цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов. Количество цветов и их названия вводит пользователь
Есть n цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов. Количество цветов и их названия вводит...

Получить из множества цветов спектра новое множество путем исключения трех цветов
Задано множество, содержащее все цвета светового спектра от красного до фиолетового. Получить из этого множеств новое ...

Задать два перечислимых типа: первый - коды цветов, второй - названия цветов
Задать два перечислимых типа: первый коды цветов, второй - названия цветов. Вводится имя цвета, выводится его тип. Помогите плз,...

8
Українець
424 / 318 / 16
Регистрация: 26.09.2009
Сообщений: 844
15.03.2011, 00:56
Python
1
2
3
4
5
6
7
8
9
10
11
def del4(X):
    l=len(X);
    count=0;
    for i in range(3,l,4):
        X=X[:(i-count)]+X[i+1-count:]
        count+=1
    return X
data=[i for j in range(98/7) for i in range(7)]
while len(data)>5:
    data=del4(data)
print data[3],data[4]
1
294 / 206 / 2
Регистрация: 20.02.2011
Сообщений: 551
15.03.2011, 12:38
freest
Просили как бы "на бумаге", т.е. для человека, а не для компутера... Да и для компутера такой вариант не вполне прокатит. Ибо не определен в нем ни "красный", ни "оранжевый", ни какой из прочих цветов. Ответа не даст, короче. Реальнее всего эту штуку запрограммировать в Лисп, типа, список из 98 звеньев "красный" и т.п., мы в нем вышибаем некоторые звенья и склеиваем опять в список. Пойдет также EUPHORIA или Lua. Или еще какие-то языки, умеющие стандартно работать со списками. А "на бумаге", для человека - это задница полная. Можно посчитать, что всего делается 24 цикла удаления некоторых сегментов, но это ровно ничего не дает. Несомненно, останутся первые 3 звена, но если (по аналогии) подумать, что в живых останется хвост, то это не верно: хвост сносится напрочь и достаточно глубоко, на несколько сегментов. Короче, только программа в Лисп спасет отца русской демократии... Лисп знаю плохо, на EUPHORIA (этакий Бейсик с элементами Лиспа) мог бы чего-то написать.

ЗЫ: Да, если вариант программы на Лиспе приемлем, можно было бы переадресовать это задание в соответствующую ветку.

Добавлено через 16 минут
ЗЗЫ: На самом деле, можно решить и более традиционными мерами. Пишем массив из 98 логических переменных true, потом в цикле каждую четвертую из них переводим в false. Ежели она и так false, сдвигаемся до следующего значения. После каждого цикла бежим по массиву и считаем, сколько у нас осталось true. Если ровно пять штук, то пора кончать эти извращения. После этого смотрим, где у нас остались еще true, кроме первых трех штук (очевидных). Номера их позиций переводим в "красный"-"оранжевый"-"желтый" и т.п. по очевидной схеме. Которую явно подразумевал freest, но поленился расписать в четкой форме. А мне тоже лень. Ну чем я должен быть лучше, чем freest?
1
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
15.03.2011, 15:26
На бумаге:
найдем сначала, сколько было сделано шагов. Пусть сейчас n звеньев. Тогда будет вырезано округление_вниз(n/4) звеньев. Считаем, через сколько шагов останется 5 штук.

Рассмотрим в оставшемся списке k-ое звено. Найдем его индекс перед последним вырезанием. При последнем вырезании перед этим звеном было вырезано округление_вниз((k-1)/3) звеньев, следовательно его индекс до вырезания был на это число больше.

Делаем такой откат нужное количество раз, получаем первоначальный индекс звена. Зная его, определяем цвет.
1
Українець
424 / 318 / 16
Регистрация: 26.09.2009
Сообщений: 844
15.03.2011, 20:30
Цитата Сообщение от Хохол Посмотреть сообщение
Рассмотрим в оставшемся списке k-ое звено.
В оставшемся списке после чего?
0
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
15.03.2011, 21:41
Оставшемся после всех произведенных вырезаний.
0
294 / 206 / 2
Регистрация: 20.02.2011
Сообщений: 551
15.03.2011, 22:36
У, я тут насоветовал: списки-сосиски, лисп, то да сё... Вот на Фортране-95 написал. Цвета кодируются по начальным буквам. Фишка еще в том, чтобы выбивать не только каждую четвертую букву, но и ее номер, чтобы посмотреть, а какое звено осталось.
Fortran
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
program raduga
 
implicit none
  integer numbers(98), numbers1(98)
  integer j, j1, jj, jend
  character colours*98, colours1*98
 
 
   colours = repeat("кожзгсф", 14)
   do j = 1,98
      numbers(j) = j
   end do
   
   jend = 98
   
   do jj = 1,98    ! чисто формальный цикл, мы все равно из него выйдем по exit 
        j1 = 0
      do j = 1, jend
         if (mod(j,4).eq.0) cycle
         j1 = j1 + 1
         colours1(j1:j1) = colours(j:j)
         numbers1(j1) = numbers(j)
      end do
      jend = j1
      numbers = numbers1
      numbers1 = 0
      colours = colours1
      colours1 = " "
      if (jend.le.5) exit
   end do
   
   do j = 1,5
      write(*,*) numbers(j), " ", colours(j:j)
   end do
      read(*,*)
end
И результат (бывший номер звена - буква):

1 к
2 о
3 ж
67 з
89 г
1
 Аватар для Christopher M.
9 / 9 / 1
Регистрация: 02.07.2010
Сообщений: 28
15.03.2011, 22:40
Ну вы даете, народ. Вы точно помните, как выглядит бумага? Да поправит меня топикстартер, речь шла о том, как сие задание малой кровью провернуть вручную.

Я далеко не ходил, нарисовал на бумаге в клеточку таблицу 7 на 14 (как раз 98 клеточек заняла) и методично зачеркивал каждую четвертую клетку в несколько проходов, пока не остались три самых верхних левых клетки, и еще две где-то снизу. Цвет потом элементарно определяется по номеру столбца.
Заняло все это ровно 5 минут.

Имхо, тут есть, где развести сложные логические заключения, которые "все упрощают", но для случая в 98 клеток... это явно выйдет не быстрее)))
1
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.03.2011, 10:56
То, что народ здесь странный, давно ни для кого не секрет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.03.2011, 10:56
Помогаю со студенческими работами здесь

Создать гистограмму цветов из цветов загруженного изображения и искать с помощью нее пиксели одинакового цвета
Необходимо создать гистограмму цветов из цветов загруженного изображения и искать с помощью нее пиксели одинакового цвета. Нужно переделать...

Вычислить количество способов, которыми можно купить букет из 3 роз двух цветов, если в продаже имеются розы 3 цветов: белые, розовые и красные.
Здравствуйте дорогие форумчане нужна ваша помощь нужно посмотреть вот эту задачу если не тродно кому нибудь сделать ее то запишите...

Конвертация цветов в коды цветов
Здраствуйте. Помогите мне научится шагу интерпретации на Лазаврус. Цель - Написать кроссплатформенную программу для систем Windows и Linux...

Расчет П и Т звеньев аттенюатора
Доброго времени суток! Прошу помощи в переписывании программы для расчета П и Т звеньев аттенюатора с basic на c++. пример программы...

Добавление звеньев в цепочку ответственных
Всем привет. Пишу здесь, поскольку в инете ничего по этой теме не нашёл. В общем, нужно реализовать корректный ввод Int32, используя...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 20.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 17.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru