Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
3 / 3 / 1
Регистрация: 24.01.2011
Сообщений: 61

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

14.03.2011, 20:39. Показов 2478. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru