Re: Интересная логическая задачка на собеседовании
От: biochemist СССР https://www.anekdot.ru/i/caricatures/normal/20/7/27/1595846503.jpg
Дата: 16.03.06 09:46
Оценка: 38 (6) :))) :))) :))
Здравствуйте, vralch, Вы писали:

V>Друг ходил на собеседование по Oracle. Задали такую логическую задачу.


V>Есть 8 шаров, причем один из них с дефектом (легче, тяжелее — неизвестно). Нужно за 3 взвешивания выявить его.


V>Он решил за 4 взвешивания.


V>Кто знает, как это сделать за 3?


Для Oracle :

SQL> create table balls (b1 number,
  2  
SQL> ed
Записано файл afiedt.buf

  1  create table balls (
  2  b1 number,
  3  b2 number,
  4  b3 number,
  5  b4 number,
  6  b5 number,
  7  b6 number,
  8  b7 number,
  9  b8 number);

Таблица создана.

SQL> create or replace procedure set_balls
  2  as
  3  str varchar2(2000);
  4  n number;
  5  begin
  6  update balls
  7  set
  8  b1 = 1,
  9  b2 = 1,
 10  b3 = 1,
 11  b4 = 1,
 12  b5 = 1,
 13  b6 = 1,
 14  b7 = 1,
 15  b8 = 1;
 16  n := round(dbms_random.value, 1);
 17  --dbms_output.put_line('n='||n);
 18  str := 'update balls set b'||round(dbms_random.value(1,8))||' = '||
 19  to_char(n, 'fm0.0');
 20  --dbms_output.put_line('str='||str);
 21  execute immediate str;
 22* end;
SQL> /

Процедура создана.

SQL> exec set_balls;

Процедура PL/SQL успешно завершена.

SQL> select
  2  case when (b1+b2 = b3+b4)
  3     then    (case when (b1+b2=b5+b6)
  4             then (case when (b1=b7) then 8
  5             else 7
  6             end)
  7     else    (case when (b1=b5) then 6
  8             else 5
  9             end)
 10     end)
 11  else
 12     (case when (b1=b2)
 13             then (case when (b1=b3) then 4
 14             else 3
 15             end)
 16     else
 17             (case when (b1=b3) then 2
 18             else 1
 19             end)
 20     end)
 21  end invalid_ball
 22  from balls;

INVALID_BALL
------------
           5

SQL> select * from balls;

       B1        B2        B3        B4        B5        B6        B7        B8
--------- --------- --------- --------- --------- --------- --------- ---------
        1         1         1         1        ,8         1         1         1

SQL>
«Национализм во мне столь естественный, что никогда никаким интернационалистам его из меня не вытравить»
Менделеев Д. И.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.