Автор | Сообщение |
|
Отправлено: 01.01.21 18:08. Заголовок: № 376
Р =x принадлежит {2, 4, 9, 10, 15} Q= x принадлежит {3, 8, 9, 10, 20} (А ~ P) V (A ~ Q) = 1 Но! К сожалению, в школьном курсе математики не изучают даже в физ-мат классах равномощность множеств.
|
|
|
Ответов - 12
[только новые]
|
|
|
Отправлено: 13.02.22 21:19. Заголовок: Тема 15. Ошибка в условии задачи 376?
Проверьте условие задачи. мне кажется в условии ошибка.Результат - пустое множество. Прилагаю программный код: begin var aset:set of integer; var good:boolean; for var a:=1 to 1000 do begin good:=true; for var x:=1 to 1000 do begin var ux1:=(x in [2,4,9,10,15]); var ux2:=(x in [3,8,9,10,20]); var uxa:=(x = a); if (ux1 = uxa)or(ux2=uxa) then else begin good:=false; break; end; end; if good then aset+=[a]; end; writeln(aset); end.
|
|
|
|
| Администратор
|
Сообщение: 3306
|
|
Отправлено: 14.02.22 09:18. Заголовок: PeerGynt пишет: Пров..
PeerGynt пишет: цитата: | Проверьте условие задачи. мне кажется в условии ошибка.Результат - пустое множество. |
|
Дело в том, что вы ищете одно число, при котором заданное условие истинно при всех x. А множество А состоит не из одного числа. begin var aset: set of integer; var good: boolean; aset := [9, 10]; good := true; for var x := 1 to 1000 do begin var ux1 := (x in [2, 4, 9, 10, 15]); var ux2 := (x in [3, 8, 9, 10, 20]); var uxa := (x in aset); if (ux1 = uxa) or (ux2 = uxa) then else begin good := false; break; end; end; if good then writeln('OK'); end.
|
|
|
|
Отправлено: 13.02.22 21:38. Заголовок: тут так прокатывает?..
тут так прокатывает? или надо отдельную тему создать?
|
|
|
|
Отправлено: 15.02.22 19:54. Заголовок: Цель задачи как раз ..
Цель задачи как раз получить искомое множество.Я ищу все значения А которые формируют множество подходящих решений. Для каждого значения А проверяется истинность условия для любых значений X. Каждое подходящее значение А добавляется в множество aset. Ваше решение уже предполагает найденное множество А. Мне все таки кажется, что условие должно быть сформулировано так, чтобы оно позволяло найти множество А. В данной ситуации представленное в задаче выражение истинно тогда и только тогда когда множество А уже известно, и представлено 2 элементами "9" и "10".
|
|
|
|
| Администратор
|
Сообщение: 3320
|
|
Отправлено: 15.02.22 20:18. Заголовок: PeerGynt пишет: Мне ..
PeerGynt пишет: цитата: | Мне все таки кажется, что условие должно быть сформулировано так, чтобы оно позволяло найти множество А. |
|
Я просто показал вам, что решение есть. Но думаю, что способ его поиска (через программу) не самый лучший.
|
|
|
|
Отправлено: 15.02.22 20:31. Заголовок: Поляков пишет: Я пр..
Поляков пишет: цитата: | Я просто показал вам, что решение есть. Но думаю, что способ его поиска (через программу) не самый лучший. |
| У меня все задачи из 15 темы прекрасно решаются с помощью данной программы: и с множествами, и с отрезками, и с графиками, и с делителями, и как ни странно с побитовой конъюнкцией - в зависимости от вида задачи бывает приходится вносить косметические штрихи - но костяк программы остается неизменным. где то достаточно остановить цикл при первом найденом значении, где то приходится формировать множество решений, но везде эта программа работает. на данный момент я решил около 50 различных задач. и везде все работало. пока что это первая и единственная задача не решаемая с помощью данной программы именно поэтому я написал на форум.
|
|
|
|
Отправлено: 15.02.22 20:24. Заголовок: я все же остаюсь на ..
я все же остаюсь на позиции о том, что условие задачи сформулировано некорректно и логическое выражение, предложенное в задаче, должно иметь иной вид. оно должно позволять находить искомое множество элементов А. А уже найдя весь набор элементов множества - следует найти минимальные из них и вычислить необходимый ответ. Допустим программно эту задачу невозможно решить. Не могли бы Вы объяснить другой способ решения данной задачи. Я пытаюсь решить задачу на координатной оси, но я так же перебирая возможные значения А не могу получить элементов составляющих набор искомого множества.
|
|
|
|
| Администратор
|
Сообщение: 3321
|
|
Отправлено: 15.02.22 20:39. Заголовок: Вот здесь описано пр..
Вот здесь описано простое решение методом рассуждений.
|
|
|
|
Отправлено: 20.02.23 08:09. Заголовок: приношу извинения за..
приношу извинения за собственное упрямство, действительно для большого количества задач на отрезки и множества программные решения подобные описанному мной - очень часто не работают (хотя, достаточно часто, прекрасно решаются программно и без ошибок). для множеств и отрезков лучше решать вручную.
|
|
|
|
Отправлено: 16.04.22 00:36. Заголовок: Решение с двоякими ответами
Попробовала решить методом интервалов на коорд.оси. Пусть точки x лежат в 4-х интервалах: все вместе - все натуральные числа. x P==A Q==A F= (P==A) or (Q==A) P^Q True==A True==A True ---> A:True на P^Q P\Q True==A False==A True всегда независимо от A Q\P False==A True ==A True всегда независимо от A not(PvQ) False ==A False ==A True ---> A: False на not(PvQ), A True внутри PvQ Отсюда A_min = P^Q = {9,10}, A_max = PvQ = {2, 3, 4, 8, 9, 10, 15, 20}. Но тогда встает вопрос об ответе в задаче: для A_min минимальное произведение элементов = 9*10=90 - OK, совпадает с ответом. Но для A_max минимальное произведение элементов = 2*3 = 6! Никак не 90. Получается, надо корректировать условие задачи: сначала найти A_min, и только потом произведение его элементов? Иначе возможны и ДРУГИЕ ответы!
|
|
|
|
| Администратор
|
Сообщение: 3476
|
|
Отправлено: 16.04.22 06:18. Заголовок: ЕленаФом пишет: Но д..
ЕленаФом пишет: цитата: | Но для A_max минимальное произведение элементов = 2*3 = 6! |
|
По условию же имеется в виду произведение ВСЕХ элементов множества.
|
|
|
|
|
Отправлено: 16.04.22 23:27. Заголовок: Логично! что произве..
Логично! что произведение ВСЕХ элементов. Надо внимательнее читать условие. Но это " мелочи", главное показать было, что не нужно во всех задачах залезать в Python, отрезки на мат. логику прекрасно вручную решаются.
|
|
|
|