Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Работа Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 [7] 8 9 10 11 .. 22   вперед  Ctrl
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
PinkCat
Member [заблокирован]

Откуда:
Сообщений: 2541
Агнец за бортом,

Нельзя из комнаты попасть в неё же.
-----
Где это условие?
6 сен 18, 18:18    [21667347]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
Eleanor
Member

Откуда:
Сообщений: 2344
PinkCat,

Ну, пройдет, но все равно поймет, что больше 10.
Dimitry Sibiryakov уже предложил увеличивать число проходимых комнат на каждом шаге. Можно тогда и с шага в 1 комнату начать.
6 сен 18, 18:18    [21667348]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
PinkCat
Member [заблокирован]

Откуда:
Сообщений: 2541
Eleanor,

предложил увеличивать число проходимых комнат на каждом шаге
-----
И как это поможет определить что достигнута граница?
6 сен 18, 18:22    [21667352]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
Eleanor
Member

Откуда:
Сообщений: 2344
PinkCat,

Это поможет подсчитать количество комнат быстрее.
6 сен 18, 18:23    [21667355]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
PinkCat
Member [заблокирован]

Откуда:
Сообщений: 2541
Eleanor,

Это поможет подсчитать количество комнат быстрее.
-----
Ну это Я могу сказать и без подсчета - проходя по круговой анфиладе и считая комнаты можно считать до бесконечности. :)
6 сен 18, 18:26    [21667356]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
Кот Матроскин
Member

Откуда: Москва
Сообщений: 8931
softwarer,

Я бы сказал что задача плохо сформулирована - правильней было бы
Слуге поручили обойти дворец, включить свет во всех комнатах и позвонить после этого в колокольчик


В Вашей формулировке ее решает алгоритм "Идти вперед и зажигать свет в каждой следующей комнате, если он там потушен". Алгоритм зациклится - ну и что, задача-то будет решена
6 сен 18, 18:26    [21667359]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1318
PinkCat
Агнец за бортом,

Нельзя из комнаты попасть в неё же.
-----
Где это условие?


Из одной комнаты можно попасть в другую.

Если комната одна, то как это должно быть?
6 сен 18, 18:27    [21667360]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
PinkCat
Member [заблокирован]

Откуда:
Сообщений: 2541
Eleanor,

P.S. Количество комнат не известно по условию.
6 сен 18, 18:27    [21667361]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1318
Реальная жизнь.

Определить количество комнат.
Как заипался - это половина.
6 сен 18, 18:28    [21667362]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
PinkCat
Member [заблокирован]

Откуда:
Сообщений: 2541
Агнец за бортом,

Если комната одна, то как это должно быть?
-----
А как обычно попадают в другую комнату? Ну? Ну да - проходя через дверь... :)
6 сен 18, 18:29    [21667363]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
Eleanor
Member

Откуда:
Сообщений: 2344
PinkCat,

Слуга и включает свет, идя в одну сторону, и выключает, идя в другую, чтобы узнать, в какой момент включенный им ранее свет оказался выключен и понять количество комнат.
6 сен 18, 18:30    [21667364]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
PinkCat
Member [заблокирован]

Откуда:
Сообщений: 2541
Кот Матроскин,

и позвонить после этого в колокольчик
-----
Обычно дают "подсказку" в виде СТАРОГО слуги.
6 сен 18, 18:31    [21667368]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1318
PinkCat
Агнец за бортом,

Если комната одна, то как это должно быть?
-----
А как обычно попадают в другую комнату? Ну? Ну да - проходя через дверь... :)


Если комнат одна, то слуга туда ни попасть, ни выйти оттуда не сможет.
6 сен 18, 18:32    [21667369]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
PinkCat
Member [заблокирован]

Откуда:
Сообщений: 2541
Eleanor,

Уже ближе, но все одно - непонятно и избыточно.
6 сен 18, 18:33    [21667371]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
PinkCat
Member [заблокирован]

Откуда:
Сообщений: 2541
Агнец за бортом,

Если комнат одна, то слуга туда ни попасть, ни выйти оттуда не сможет.
-----
Прими как данное, что комната дана со слугой.
6 сен 18, 18:35    [21667375]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1318
PinkCat
Агнец за бортом,

Если комнат одна, то слуга туда ни попасть, ни выйти оттуда не сможет.
-----
Прими как данное, что комната дана со слугой.


Ок, но слуга не сможет из неё выйти. В ней и останется.
6 сен 18, 18:37    [21667379]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 58887
Блог
Кот Матроскин
правильней было бы и позвонить после этого в колокольчик

Справедливое замечание.
6 сен 18, 18:38    [21667381]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
PinkCat
Member [заблокирован]

Откуда:
Сообщений: 2541
Агнец за бортом,

Ок, но слуга не сможет из неё выйти.
-----
A pазве это требовалось по задаче?
6 сен 18, 18:41    [21667386]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1318
PinkCat
Агнец за бортом,

Ок, но слуга не сможет из неё выйти.
-----
A pазве это требовалось по задаче?


Еще один с деменцией.

Ушёл, короче. Приду с решением.
6 сен 18, 18:43    [21667389]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
PinkCat
Member [заблокирован]

Откуда:
Сообщений: 2541
Агнец за бортом,

Ушёл, короче. Приду с решением.
-----
Да-да, не забудь позвонить в колокольчик... :)
6 сен 18, 18:48    [21667400]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
.Евгений
Member

Откуда:
Сообщений: 493
Я считаю, что нужно отслеживать не паттерны (которые могут повториться), а изменения (заведомо однопоточные), проверяя их со второй стороны.
6 сен 18, 19:44    [21667434]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1318
.Евгений
Я считаю, что нужно отслеживать не паттерны (которые могут повториться), а изменения (заведомо однопоточные), проверяя их со второй стороны.


Да, ты прав. Как и тот парень, который не шарит в SQL.
6 сен 18, 20:05    [21667447]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1318
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace oldSlave
{
    class Program
    {
        static void Main(string[] args)
        {
            var rooms = getRooms();

            Console.WriteLine($"try to guess, its {rooms.Count.ToString()} rooms");

            var lightON = rooms.Where(x => x.lightOn).Count();
            var lightOFF = rooms.Where(x => !x.lightOn).Count();

            Console.WriteLine($"and there are {lightOFF} dark rooms");

            var startRoom = rooms[0];

            var expectCount = 1;

            var foundCircle = false;

            while (!foundCircle)
            {
                var roomDirect = slave.stepsFromRoom(startRoom, expectCount, direction.forward);
                var roomReverse = slave.stepsFromRoom(startRoom, expectCount, direction.backward);               

                if ( slave.howDoYouThinkAreRoomsSame(roomDirect, roomReverse))
                {
                    Console.WriteLine( $"{(expectCount*2).ToString()} rooms old slave found ");
                    Console.WriteLine($"and you make old slave switch on light {slave.lightOnAction} times!");
                    foundCircle = true;
                }
                expectCount++;
            }
            Console.ReadLine();
        }

        private static List<room> getRooms()
        {
            var roomsCountTrue = Enumerable.Range(1, 1000).OrderBy(x => Guid.NewGuid()).Skip(500).FirstOrDefault();

            var rooms = Enumerable.Range(1, roomsCountTrue).Select((val, ind) => ind % 2 == 0).OrderBy(x => Guid.NewGuid()).Select((lightOn, ind) => new { lightOn = lightOn, i = ind + 1 }).Aggregate(new List<room>(), (acc, _room) =>
                  {
                      var lastRoom = acc.LastOrDefault();
                      var newRoom = new room() { lightOn = _room.lightOn, index = _room.i };

                      if (lastRoom != null)
                      {
                          lastRoom.next = newRoom;
                          newRoom.prev = lastRoom;
                      }
                      acc.Add(newRoom);
                      return acc;
                  }).ToList();

            var begin = rooms.FirstOrDefault();
            var end = rooms.LastOrDefault();

            begin.prev = end;
            end.next = begin;

            return rooms;
        }

        class room
        {
            public room prev { get; set; }
            public bool lightOn { get; set; }
            public room next { get; set; }
            public int index { get; set; }
        }

        static class slave
        {

          public  static int lightOnAction = 0;

            public static room stepsFromRoom(room room, int steps, direction direction)
            {
                var doneSteps = 0;

                var foundRoom = room;

                while (doneSteps < steps)
                {
                    foundRoom = direction == direction.forward ? foundRoom.next : foundRoom.prev;
                    doneSteps++;
                }

                return foundRoom;
            }

            internal static bool howDoYouThinkAreRoomsSame(room roomDirect, room roomReverse)
            {
                lightOnAction += new[] { roomDirect.lightOn, roomReverse.lightOn }.Where(x => !x).Count();

                roomDirect.lightOn = true;
                roomReverse.lightOn = true;                

                roomDirect.lightOn = !roomDirect.lightOn;

                if (roomDirect.lightOn != roomReverse.lightOn)
                {
                    roomDirect.lightOn = true;
                    roomReverse.lightOn = true;
                    return false;
                }

                roomDirect.lightOn = true;
                roomReverse.lightOn = true;

                return true;

            }
        }

        enum direction
        {
            forward,
            backward
        }
    }
}
6 сен 18, 20:06    [21667449]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1318
Пример вывода:

try to guess, its 78 rooms
and there are 39 dark rooms
78 rooms old slave found
and you make old slave switch on light 39 times!
6 сен 18, 20:08    [21667451]     Ответить | Цитировать Сообщить модератору
 Re: Что вас раздражает в кандидатах, когда они ищут работу?  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1318
Агнец за бортом
Пример вывода:

try to guess, its 78 rooms
and there are 39 dark rooms
78 rooms old slave found
and you make old slave switch on light 39 times!


Ошибка: Не учитывается, если в первой комнате свет выключен. Второй раз простыню постить не буду, кому надо исправит.

Нюанс: если количество комнат нечетное, то старому бедолаге придётся сделать два круга. Но со службы не гонят - и то хлеб.
6 сен 18, 20:40    [21667469]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 [7] 8 9 10 11 .. 22   вперед  Ctrl
Все форумы / Работа Ответить