Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 23.10.2015
Сообщений: 94

Определите номер человека

15.11.2015, 21:43. Показов 3851. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
100 человек стоят по кругу, им присвоены номера от 1 до 100. Они начинают считаться и каждый 19-й по счету выходит из круга. Таким образом сначала из круга выйдут люди с номерами 19, 38, 57, 76, 95, затем счет перейдет на начало круга и следующим выйдет человек с номером 14, а затем человек с номером 34 (так как человека с номером 19 уже не будет).
Определите номер человека, который последним останется в кругу.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.11.2015, 21:43
Ответы с готовыми решениями:

Известны год и номер месяца рождения человека, а также год и номер месяца сегодняшнего дня
Известны год и номер месяца рождения человека, а также год и номер месяца сегодняшнего дня (январь — 1 и т. д.). Определить возраст...

Определите средний рост женщин, фамилию самого высокого мужчины, есть ли в группе хотя бы два человека одного роста?
В анкетных данных обозначены фамилия, пол, рост. Определите средний рост женщин, фамилию самого высокого мужчины, есть ли в группе хотя бы...

Известны год и номер месяца рождения человека, а также год и номер месяца сегодняшнего дня. Определить возраст человека
Известны год и номер месяца рождения человека, а также год и номер месяца сегодняшнего дня. Определить возраст человека (число полных лет)....

10
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
16.11.2015, 00:55
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import itertools
 
def cnt():
    i = 1
    while True:
        yield i
        if i == 19: i = 1
        else: i += 1
 
tmp = []
counter = cnt()
for item in itertools.cycle(range(1, 101)):
    if item not in tmp:
        i = next(counter)
        if i == 19:
            tmp.append(item)
            if len(tmp) == 100:
                print(item)
                break
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
16.11.2015, 01:52
Лучший ответ Сообщение было отмечено Dark_Fail как решение

Решение

Python
1
2
3
4
5
6
7
s=18
a = [n for n in range(1, 101)]
 
while len(a) > 1:
    a.pop(s)
    s = (s + 18) % len(a)
print(*a)
2
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
16.11.2015, 14:25
Как вариант:
Python
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
class MyCircle:
    def __init__(self, n):
        self.hh = range(n)
        self.here = [True] * n
        self.n = n
 
    def __iter__(self):
        return Iterator(self)
 
class Iterator:
    def __init__(self, circle):
        self.circle = circle
        self.pos = -1
        self.step = 19
        self.total_cnt = 0
 
    def next(self):
        counter = 0
        while counter < self.step:
            self.pos = (self.pos + 1) % self.circle.n
            while not self.circle.here[self.pos]:
                self.pos = (self.pos + 1) % self.circle.n
            counter += 1
        number = self.circle.hh[self.pos]
        self.circle.here[self.pos] = False
        if self.total_cnt == self.circle.n:
            raise StopIteration()
        else:
            self.total_cnt += 1
            return number+1
Использование:
Python
1
2
3
circle = MyCircle(100)
for n in circle:
    print n
0
0 / 0 / 0
Регистрация: 10.03.2017
Сообщений: 3
10.03.2017, 20:51
Зачем функции, классы и лишние переменные?
Python
1
2
3
4
5
6
# -*- coding: utf-8 -*-
 
group = list(range(1, 101))
while len(group) > 1:
    del group[::18]
print(group)
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
11.03.2017, 11:09
Цитата Сообщение от korsiuk Посмотреть сообщение
Зачем функции, классы и лишние переменные?
Python
1
2
3
4
5
6
# -*- coding: utf-8 -*-
 
group = list(range(1, 101))
while len(group) > 1:
    del group[::18]
print(group)
Этот код удаляет первый элемент списка + каждый 18й после него в каждой итерации
0
0 / 0 / 0
Регистрация: 10.03.2017
Сообщений: 3
19.05.2017, 20:30
Добавлено через 10 секунд
Цитата Сообщение от oldnewyear Посмотреть сообщение
Этот код удаляет первый элемент списка + каждый 18й после него в каждой итерации
А какая разница если код работает и ответы сходятся?
0
19.05.2017, 20:55

Не по теме:

korsiuk, в какой то степени ты прав Перестаньте писать классы

0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
20.05.2017, 01:25
Цитата Сообщение от korsiuk Посмотреть сообщение
Добавлено через 10 секунд

А какая разница если код работает и ответы сходятся?
Да, и правда сходятся
0
0 / 0 / 0
Регистрация: 10.03.2017
Сообщений: 3
20.05.2017, 02:03
Semen-Semenich, кстати очень хорошая статья
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
22.05.2017, 14:29
korsiuk, Semen-Semenich, тут классы - не ради классов, а ради итераторов, по протоколу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.05.2017, 14:29
Помогаю со студенческими работами здесь

Известны год и номер месяца рождения человека, определить возраст человека
Известны год и номер месяца рождения человека, а также год и номер месяца сегодняшнего дня (январь – 1 и т.д.). Определить возраст человека...

Массив: ведущий считает и удаляет из круга каждого M-го человека; определить номер последнего оставшегося человека
СЧИТАЛКА В кругу N человек и один Ведущий. Ведущий считает и удаляет из круга каждого M-го человека. Определить номер последнего...

Определите рост человека (в метрах)
На расстоянии 24 шагов от фонарного столба высотой 2,8 м. стоит человек и отбрасывает тень длиной 32 шага. Определите рост человека (в...

Определите номер ряда и номер месте для К-ого проданного билета
Задача на IMG хостинге. Правильное решение задачи? n = int(input()) k = int(input()) x = (k // n) + 1 print (x) if x % 2...

Определите номер строки и номер столбца матрицы, в которых расположено выбранное число
Дан массив A(N,M). В каждой строке выбирается минимальный елемент, затем среди этих чисел выбирается максимальный. Определите номер строки...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru