Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2017, 22:52   #1
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,534
По умолчанию Задачка для студентов и школьников

вот хорошая задачка для студентов для разминки мозгов :
https://42.tut.by/534014
а то все байтики туда-сюда переставлять... скучно !
только задачка, по-моему, кривая : для 1,3 и 4 выражений (совместно) решений 2, а для 2-го - вообще уйма.
digitalis вне форума Ответить с цитированием
Старый 05.03.2017, 00:16   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,218
По умолчанию

Если правильно понял условие, то везде должны получиться единицы, то есть такой набор чисел вместо квадратиков: 6, 16, 12, 48, 11
Arigato на форуме Ответить с цитированием
Старый 05.03.2017, 00:26   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,534
По умолчанию

Это одно решение. Вообще для 1,3 и 4 выражений (совместно), как я уже сказал, есть 2 решения: 1 и 0,6875. Но для этих 2 решений х3, х4 суммарно могут принимать 25 пар значений ! Задачка явно кривая. Но это не помешало бы студням потренироваться - совместить логику и Дельфи
1 16 12 0,7500000 0,2500000 1,0000000
2 18 1 0,6666667 0,0208333 0,6875000
3 18 16 0,6666667 0,3333333 1,0000000
4 24 9 0,5000000 0,1875000 0,6875000
5 24 24 0,5000000 0,5000000 1,0000000
6 32 15 0,3750000 0,3125000 0,6875000
7 32 30 0,3750000 0,6250000 1,0000000
8 36 17 0,3333333 0,3541667 0,6875000
9 36 32 0,3333333 0,6666667 1,0000000
10 48 21 0,2500000 0,4375000 0,6875000
11 48 36 0,2500000 0,7500000 1,0000000
12 64 24 0,1875000 0,5000000 0,6875000
13 64 39 0,1875000 0,8125000 1,0000000
14 72 25 0,1666667 0,5208333 0,6875000
15 72 40 0,1666667 0,8333333 1,0000000
16 96 27 0,1250000 0,5625000 0,6875000
17 96 42 0,1250000 0,8750000 1,0000000
18 144 29 0,0833333 0,6041667 0,6875000
19 144 44 0,0833333 0,9166667 1,0000000
20 192 30 0,0625000 0,6250000 0,6875000
21 192 45 0,0625000 0,9375000 1,0000000
22 288 31 0,0416667 0,6458333 0,6875000
23 288 46 0,0416667 0,9583333 1,0000000
24 576 32 0,0208333 0,6666667 0,6875000
25 576 47 0,0208333 0,9791667 1,0000000
digitalis вне форума Ответить с цитированием
Старый 05.03.2017, 00:30   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,218
По умолчанию

У вас дробные значения, а должны быть натуральные. Вот такие решения среди двухзначных чисел:

6
16
12
48
11
========
6
18
16
48
11
========
6
24
24
48
11
========
6
32
30
48
11
========
6
36
32
48
11
========
6
48
36
48
11
========
6
64
39
48
11
========
6
72
40
48
11
========
6
96
42
48
11
========
8
16
8
44
12
========
8
18
12
44
12
========
8
24
20
44
12
========
8
32
26
44
12
========
8
36
28
44
12
========
8
48
32
44
12
========
8
64
35
44
12
========
8
72
36
44
12
========
8
96
38
44
12
========
96
18
1
33
16
========
96
24
9
33
16
========
96
32
15
33
16
========
96
36
17
33
16
========
96
48
21
33
16
========
96
64
24
33
16
========
96
72
25
33
16
========
96
96
27
33
16
========
Arigato на форуме Ответить с цитированием
Старый 05.03.2017, 09:50   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,534
По умолчанию

У меня нет дробных значений! В распечатке 1 - порядковый номер пары, 2,3 - х2,х3 соответственно, 4,5 - первая и вторая часть 2-го выражения, 6 - результат вычисления 2-го выражения.
вот мое решение:
Код:
  
procedure TForm1.FormClick(Sender: TObject);
var x1,x2,x3,x4,x5,j : integer ; a,b,a1,b1 : extended ;
begin
   Memo1.Clear ; b := 2/3 ;
   for x5 := 5 to 16 do
     begin amas[x5] := 11/x5 ;
     Memo1.Lines.Add( Format('%4d %12.8f',[x5,amas[x5]])) end ;
    Memo1.Lines.Add('===') ;
   for x1 := 1 to 1000 do
     begin
        a := 2/x1 + b ;
        stro := Format('%4d %12.8f',[x1,a]) ;
        for j := 5 to 16 do
          if a = amas[j] then
            stro := stro + ' = ' + Format('%4d',[j] ) ;
        Memo1.Lines.Add( stro )
     end ;
    Memo1.Lines.Add('---') ; j := 0 ;
   for x2 := 1 to 24000 do
     for x3 := 1 to 49 do
       begin
         a1 := 12/x2; b1 := x3/48 ; a := a1 + b1 ;
         if (a=1) or (a=amas[16]) then
           begin Inc (j) ;
            Memo1.Lines.Add(
              Format('%2d %4d %4d %10.7f %10.7f %10.7f',[j,x2,x3,a1,b1,a]) )
           end
       end ;
    Memo1.Lines.Add('++++') ;
end;
вот протрезвею по поводу годовщины смерти Сталина и своего д.р. - проверю совпадение наших решений. У Вас 26 вариантов, у меня 25 - где-то кто-то ... Про двузначные не было ни слова.

задавалась студням размять мозги, а взялись решать матёрые

Последний раз редактировалось digitalis; 05.03.2017 в 09:57.
digitalis вне форума Ответить с цитированием
Старый 05.03.2017, 09:54   #6
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,218
По умолчанию

В ответе должно быть 5 натуральных числе, разве нет?
Arigato на форуме Ответить с цитированием
Старый 05.03.2017, 10:05   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Там одно из решений, рассчитанное на 11-леток и лежит прямо на поверхности без всяких программистских штучек 8,48,32,44,12 и сразу следует из 2/3 = x/48 ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.03.2017, 11:26   #8
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,534
По умолчанию

Да, это одно из решений. Но поскольку мне уже немного не 11 лет, я решил проверить задачу на множественность решений. И где-то проморгал одно решение : 0,916666 .... , буду разбираться почему.
Нашел. Позор на мою седую лысину Сто раз твердил молодым, что нельзя real тупо сравнивать на = ....
Arigato, это у меня так, "рабочая выдача", отображающая процесс решения: сначала определил возможные значения x5, при которых результат лежит в диапазоне 0,66666....2,66666 , затем нашел х1, попадающее на одно из решений х5; х4 не стал вычислять ввиду очевидности, и потом стал проверять пары х2,х3, поэтому выдача такая сумбурная.
Вообще задачки для школьников полезны и старым мозгам - для тренировки.
Тему можно закрывать, юным оно не интересно.

Последний раз редактировалось digitalis; 05.03.2017 в 16:14. Причина: Нашел
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько школьников выстроились в шеренгу. Для каждого школьника известен день его рождения. Требуется: scarecrow_1 Паскаль, Turbo Pascal, PascalABC.NET 3 27.12.2015 21:50
Создать класс Date для работы с датами в формате «год.месяц.день» (Стандартная задачка для студентов на C#) roomatan C# (си шарп) 1 13.10.2013 08:55
PascalABC для школьников. Задача на строки. ARTEM_KA Помощь студентам 3 26.11.2010 08:57