Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Болталка (https://forum.antichat.xyz/forumdisplay.php?f=46)
-   -   Кто решает эту задачу за 2 часа принимаются на Лондонскую биржу (https://forum.antichat.xyz/showthread.php?t=109573)

.AkeLLa 06.03.2009 18:20

Кто решает эту задачу за 2 часа принимаются на Лондонскую биржу
 
Есть 12 шаров, 11 одинаковых, 12-й либо тяжелее, либо легче (это неизвестно)
Есть весы, которые бывают в 3-х положениях "больше", "меньше" и "поровну"
Есть 3 взвешивания, которые можно сделать

Необходимо определить какой из шаров - имеет аномальную массу

MegaEGG 06.03.2009 18:29

12 шаров в 2 кучи=1 куча тяжелей
берем тяжелую кучу
и взвешиваем по 2, пока один из них не окажется тяжелей...

iddqd 06.03.2009 18:31

шар может быть и легче
если бы только тяжелее- все проще

[FREE] 06.03.2009 18:32

тут неизвестно тяжелее или легче 12 шар

MegaEGG 06.03.2009 18:32

*лять

Fooog 06.03.2009 18:32

ТС ответ знаешь?

wizzer 06.03.2009 18:34

Решил задачу в 4 взвешивания. 4ыйбыл нужен для проверки. Три это очень мало

MuXaJIbI4 06.03.2009 18:34

1. делим 12 пополам взвешиваем .... выбераем более тяжелую партию шаров
2. делим 6 пополам взвешиваем .... выбераем более тяжелую партию шаров
3. берем 2 любых из 3 оставшихся и взвешиваем ... если равны то аномальный тот который не взвешивали ... иначе тот который тяжелее на весах

MuXaJIbI4 06.03.2009 18:35

блин действительно может и легче же быть

[FREE] 06.03.2009 18:37

MuXaJIbI4 12 шар может быть и легче, всех! Так что решение не верно

wizzer 06.03.2009 18:40

Цитата:

1. делим 12 пополам взвешиваем .... выбераем более тяжелую партию шаров
2. делим 6 пополам взвешиваем .... выбераем более тяжелую партию шаров
3. берем 2 любых из 3 оставшихся и взвешиваем ... если равны то аномальный тот который не взвешивали ... иначе тот который тяжелее на весах
Садись, два

Great_man 06.03.2009 18:50

Взвешиваем по 4 шара, если они равны значит нужный нам шар в остальных 4ех шарах.
Далее взвешиваем из остальных 4ех шаров, - 2 шара. Если они тоже равны значит взвешиваем из оставшихся 2ух шаров один из оставшихся и другой любой из гриуппы которая показала равность. Если равно, значит аномальный шар находится в оставшихся шарах.
Если первое не равно показало, то взвешиваем 5 шаров из 8ми не равных и один шар из оставшихся не взвешиваемых. Если результат дал равно, то из той группы которую вервый раз взвешивали убираем шары которые второый раз взвешивали и взвешиваем их. Взвешиваем один шар из этой группы и другой шар любой из той группы которую мы не взвешивали. Если они равны значит шар который нам нужен это тот, который мы не взвешивали в 1ый и во 2ой раз.

zifanchuck 06.03.2009 18:51

А сколько чашечек у етих весов???)

NorB 06.03.2009 18:52

Да я отже видел картинку его

wizzer 06.03.2009 18:55

Цитата:

Взвешиваем по 4 шара, если они равны значит нужный нам шар в остальных 4ех шарах.
Далее взвешиваем из остальных 4ех шаров, - 2 шара. Если они тоже равны значит взвешиваем из оставшихся 2ух шаров один из оставшихся и другой любой из гриуппы которая показала равность. Если равно, значит аномальный шар находится в оставшихся шарах.
Если первое не равно показало, то взвешиваем 5 шаров из 8ми не равных и один шар из оставшихся не взвешиваемых. Если результат дал равно, то из той группы которую вервый раз взвешивали убираем шары которые второый раз взвешивали и взвешиваем их. Взвешиваем один шар из этой группы и другой шар любой из той группы которую мы не взвешивали. Если они равны значит шар который нам нужен это тот, который мы не взвешивали в 1ый и во 2ой раз.
Молодец, Вовочка

.Slip 06.03.2009 18:55

Все шары положить на весы, разделив поровну. И убирать по шару с каждой стороны.

Great_man 06.03.2009 19:23

Примерно так:
Код:

int BALL1 = 4;
            int BALL2 = 4;
            int BALL3 = 4;
            int BALL4 = 4;
            int BALL5 = 4;
            int BALL6 = 4;
            int BALL7 = 4;
            int BALL8 = 4;
            int BALL9 = 4;
            int BALL10 = 4;
            int BALL11 = 4;
            int BALL12 = 5;

            if ((BALL1 + BALL2 + BALL3 + BALL4) == (BALL5 + BALL6 + BALL7 + BALL8))
            {
                if (BALL9 == BALL10)
                {
                    if (BALL11 == BALL4)
                        Console.WriteLine("Аномальный шар BALL12");
                    else
                        Console.WriteLine("Аномальный шар BALL11");
                }
                else
                {
                    if (BALL9 == BALL4)
                        Console.WriteLine("Аномальный шар BALL10");
                    else
                        Console.WriteLine("Аномальный шар BALL9");
                }
            }
            else
            {
                if ((BALL1 + BALL2 + BALL5) == (BALL3 + BALL6 + BALL9))
                {
                    if (BALL8 == BALL9)
                        Console.WriteLine("Аномальный шар BALL4");
                    else
                        Console.WriteLine("Аномальный шар BALL8");
                }
                else
                {
                    if (BALL3 == BALL9)
                        Console.WriteLine("Аномальный шар BALL5");
                    else
                        Console.WriteLine("Аномальный шар BALL3");
                }
            }


UnDRaux 06.03.2009 19:41

невнимательно прочитал :(

l1ght 06.03.2009 19:42

имхо1 надо опираться не на массу, а на "не аномальные шары" например взвешиваем 4 и 4 => если анамальный тут то другие 4 шара равные и с помошью них можно найти анамальный шар если анамального нет то 8 шаров одинаковые тут ещё проще
только меньше 4 взвесов не выходит
имхо2 там какая то хитрая комбинация 5-5-2 или 6-4-2 хз надо подумать

//add UnDRaux, .Slip читайте внимательно задание

.Slip 06.03.2009 19:48

UnDRaux, там не сказано что аномальный шар тяжелее. Он может быть и легче.

Great_man, нет, ты изначально определил в программе что 12й шар аномальный. Сам для себя. Попробуй сделать ввод значений шаров с клавиатуры, и увидишь как алгоритм не найдёт нужный шар.

.AkeLLa 06.03.2009 19:49

Цитата:

Сообщение от Fooog
ТС ответ знаешь?

неа, думать впадло :)
_______________
видимо Лондонская биржа будет без ачатовцев :D

UnDRaux 06.03.2009 19:53

да, вы правы... прочел невнимательно.

Ща подумаю иначе....

UnDRaux 06.03.2009 20:08

нашел 3 метода если взвешивать 4 раза :(

интересно вот что, если забрать по 1 шару с каждой чаши весов это считается за взвешивание.....

.AkeLLa 06.03.2009 20:16

Цитата:

Сообщение от UnDRaux
если забрать по 1 шару с каждой чаши весов это считается за взвешивание.....

да

go2be 06.03.2009 20:21

Блин. Думаю так нада.
Взвесить по 6 шаров.
Взять одну группу из 6 шаров взвесить между собой по 3 шара. Если они равны, то аномальная группа - другие 6 шаров.
Если не равны, то один из этих 6 - аномальный
Дальше пока хз )))

Shaitan-Devil 06.03.2009 20:27

Не то.

AkyHa_MaTaTa 06.03.2009 20:32

гугл решил уже
http://www.lancer.com.ua/forum/viewtopic.php?t=40293&postdays=0&postorder=asc&sta rt=0
ДЛЯ особо одареных - ответ белым на белом фоне.

UnDRaux 06.03.2009 20:35

Звоните на биржу, ребята!

AkyHa_MaTaTa, там ответа нет!

Я ща отпишу вам всё!! там несколько вариаций!

Shaitan-Devil 06.03.2009 20:39

Бля нашел! Кароче сначала делим по 5. Два остается. Если пять монет равны пяти монетам. ТО берем одну из 2-х монет(оставшихся) И сравнивааем с одной кучейи з 5. Если равны то фальш та которая осталась. Если нет то то что положили. Рассматриваем вариант если одна из 5-ти меньше или больше. Делим в группы по два. Берем из более легкой группы две. Одну из них сравниваем с точно не фальшивой. Если равны. То 3-я которая осталась фальшивая. Если не равны, та которая не равна настоящей фальшивая!

Qwazar 06.03.2009 21:01

Цитата:

Сообщение от Shaitan-Devil
Берем из более легкой группы две.

Угу, а остальные группы ты вообще не рассмотрел.

UnDRaux 06.03.2009 21:05

Вообщем поехали:

Делим шары на 4 части по 3 шара.

Вариант 1.

Взвешиваем 2 тройки. Тут возможны 2 варианта, либо они равны, либо одна из партий иная по весу. Рассмотрим сначала вариант разного веса. Итак скажем тройка А тяжелее тройки Б. Убираем тройку Б, и ставим на весы тройку В... если оны равны, значит аномалия в тройке Б (Легче), если А опять перевесила, значит аномалия в тройке А (Тяжелее), далее по методу взвешиваем 2 шара нужной тройки и находим нужный шар (либо один из 2-х, либо оставшийся 3-й). Это вариант один.

Вариант 2

Есть другой вариант..... если при взвешивании тройки А и Б они равны, то ставим на весы тройку А и В, если разница поменялась, то далее как в варианте 1 (мы узнаем нужную аномалию). Если же при взвешивании А и В равенство.... блять.... забыл :( щаща вспомню..

Great_man 06.03.2009 21:11

UnDRaux я точно так же и написал.)

.Slip 06.03.2009 21:11

Shaitan-Devil, UnDRaux, вы рассматриваете не все возможные варианты.

2UnDRaux, там не сказано что аномальный шар тяжелее/легче. Нельзя по весу групп шаров определять.

UnDRaux 06.03.2009 21:13

Цитата:

Сообщение от .Slip
Shaitan-Devil, UnDRaux, вы рассматриваете не все возможные варианты.

как раз я рассмотрел все возможные варианты... прочитай внимательно. Трабла в том, что я застрял на последнем варианте.... а ведь вертелся в голове. Это вопрос времени....

Great_man у тебя иначе...

Great_man 06.03.2009 21:18

А вообще задача решается одним запросом:
Код:

int[] balls = new int[12];
            for (int i = 0; i < 12; i++)
                balls[i] = 4;
            Console.WriteLine("Please neter abnormal balls number: ");
            int num = Convert.ToInt32(Console.ReadLine()) - 1;
            balls[num] = 5;

            var set = from ball in balls
                      where ball == 5
                      select ball;

            foreach (int i in set)
                Console.WriteLine(i.ToString());


.Slip 06.03.2009 21:18

UnDRaux, Из группы 3х шаров в которой один аномальный, нельзя одним ходом найти аномальный.

PS Я брал 3 группы по 4 шара, если сразу две группы были равны, то я находил аномальный шар. А вот если не равны, то до конца не получилось. Мой способ дал 75% нахождения аномального шара.

Да, кстати:
Цитата:

Сообщение от UnDRaux
Делим шары на 4 части по 3 шара.

>> Итак скажем тройка А тяжелее тройки Б. Убираем тройку Б, и ставим на весы тройку В

Ты не потерял случайно тройку Г ?

UnDRaux 06.03.2009 21:22

ты внимательнее читай Слип)))))

Рассмотрим сначала вариант разного веса. Итак скажем тройка А тяжелее тройки Б. Убираем тройку Б, и ставим на весы тройку В... если оны равны, значит аномалия в тройке Б (Легче), если А опять перевесила, значит аномалия в тройке А (Тяжелее), далее по методу взвешиваем 2 шара нужной тройки и находим нужный шар (либо один из 2-х, либо оставшийся 3-й). Это вариант один.

ты пойми... если при первом взвешивании НЕравенство, то аномальная партия по любому в одной из первых троек. ТАК?

тройка Г при этом вообще не нужна)))

Great_man 06.03.2009 21:22

А если еще составить хэш таблицу соответствий, то можно упростить поиск нужного шара до Q(1) = одно действие. То нам вообще тогда весы даже не нужны будут. Уберите весы из задачи.

UnDRaux 06.03.2009 21:24

У меня как раз в отличи от тебя пробема при варианте равенства :(

.Slip 06.03.2009 21:25

UnDRaux:

Итак скажем тройка А тяжелее тройки Б // Ход 1
Убираем тройку Б, и ставим на весы тройку В... если оны равны, значит аномалия в тройке Б (Легче) // Ход 2

Третьим ходом ты ничего не сделаешь. Твой вариант не подходит.
В очередной раз говорю, у тебя просчитаны далеко не все варианты. Твоим способом ты не найдёшь никак за три хода аномальный шар. Только группу за два хода.


Время: 16:06