III. Решаване на логически задачи чрез разсъждение


Въпрос: По време на пътуването петима приятели - Антон, Борис, Вадим, Дима и Гриша - се запознаха със спътник. Те я ​​помолиха да отгатне техните фамилни имена и всеки от тях направи едно вярно и едно невярно твърдение: Дима: „Моето фамилно име е Мишин, а фамилното име на Борис е Хохлов.“ Антон: "Мишин е моето фамилно име, а фамилното име на Вадим е Белкин." Борис: "Вадим е Тихонов, а моето фамилно име е Мишин." Вадим: "Аз съм Белкин, а фамилията на Гриша е Чехов." Гриша: „Да, фамилията ми е Чехов, а Антон е Тихонов.“ Кой има фамилия? решете проблема, като съставите и трансформирате логически израз:

По време на пътуването петима приятели - Антон, Борис, Вадим, Дима и Гриша - се запознаха със спътник. Те я ​​помолиха да отгатне техните фамилни имена и всеки от тях направи едно вярно и едно невярно твърдение: Дима: „Моето фамилно име е Мишин, а фамилното име на Борис е Хохлов.“ Антон: "Мишин е моето фамилно име, а фамилното име на Вадим е Белкин." Борис: "Вадим е Тихонов, а моето фамилно име е Мишин." Вадим: "Аз съм Белкин, а фамилията на Гриша е Чехов." Гриша: „Да, фамилията ми е Чехов, а Антон е Тихонов.“ Кой има фамилия? решете проблема, като съставите и трансформирате логически израз:

Отговори:

Решение. Нека обозначим предложната форма „млад мъж на име А носи фамилното име B“ като AB, където буквите A и B съответстват на началните букви на името и фамилията. Коригираме изявленията на всеки от приятелите: DM и BH; AM и WB; VT и BM; СБ и МС; MS и AT. Приемете първо, че DM е вярно. Но, ако DM е вярно, тогава Антон и Борис трябва да имат различни фамилии, така че AM и BM са неверни. Но ако AM и BM са неверни, тогава BT и BT трябва да са верни, но BT и BT не могат да бъдат верни едновременно. Така че остава още един случай: истински BH. Този случай води до верига от изводи: BH е вярно BM е невярно BT е вярно AT е невярно GF е вярно WB е невярно AM е вярно. Отговор: Борис - Хохлов, Вадим - Тихонов, Гриша - Чехов, Антон - Мишин, Дима - Белкин.

Подобни въпроси

  • дайте 3 примера за имена на обекти с лицеви наставки и умалителни наставки
  • съставете 2 изречения, така че в първия случай причастното словосъчетание да стои преди определяемата дума, а във втория случай след определяемата дума. Обяснете поставянето на препинателните знаци в тези изречения.
  • Моля, решете... Тънка спирална пружина, за която е валиден законът на Хук, окачена вертикално върху неподвижна опора, се разтяга със сила от 160N на 72 mm. Към пружината е приложена допълнителна сила от 120 N. Определете удължението на спиралата.
  • за букета са избрани бели и червени рози в съотношение 2:3. намерете отношението на броя на белите рози към общия брой рози в букета

Въпрос: По време на пътуването петима приятели - Антон, Борис, Вадим, Дима и Гриша, се запознаха със спътник


Уважаеми потребители на форума, моля за помощ при решаването на проблема в Prolog))

По време на пътуването петима приятели - Антон, Борис, Вадим, Дима и Гриша, се запознаха със свой спътник. Те я ​​помолиха да познае имената им и всеки от тях направи едно вярно и едно грешно твърдение:
Дима каза: "Моето фамилно име е Мишин, а фамилното име на Борис е Хохлов." Антон каза: "Мишин е моето фамилно име, а фамилното име на Вадим е Белкин." Борис каза: "Фамилията на Вадим е Тихонов, а моята фамилия е Мишин." Вадим каза: "Моята фамилия е Белкин, а фамилията на Гриша е Чехов." Гриша каза: "Да, моята фамилия е Чехов, а фамилията на Антон е Тихонов."
Какво е фамилното име на всеки приятел?

БЛАГОДАРЯ ВИ МНОГО предварително за помощта!!!

Отговор:проверете онлайн

Въпрос: Програмата за решаване на олимпиадния проблем за пътуванията на Вася в метрото с билет


Момчето Вася се вози в метрото всеки ден. Сутрин отива на училище, а вечерта на същия ден, обратно от училище, у дома. За да спести малко пари, той купува електронна смарт карта за X пътувания. Когато иска да се качи в метрото, слага картата си на турникета. Ако на картата има ненулев брой пътувания, тогава турникетът пропуска Вася и отписва едно пътуване от картата. Ако на картата няма останали пътувания, тогава турникетът не пропуска Вася и той (Вася) е принуден да купи на същата станция нова картаза X пътувания и преминете отново през турникета.
Вася забеляза, че поради факта, че метрото е претъпкано сутрин, отнема много време да си купиш нова карта сутрин и той може да закъснее за училище. В тази връзка той иска да разбере: ще има ли такъв ден, че сутринта, след като отиде на училище, да се окаже, че има нула пътувания на картата си.
Вася никъде другаде не се качва на метрото и затова се качва само на спирката до дома си и на спирката до училището.
Входни данни
Входният файл INPUT.TXT съдържа точно 2 реда. Първият съдържа думата „Училище“ или „Вкъщи“, в зависимост от това къде Вася за първи път е купил карта за X пътувания. Вторият ред съдържа естествено число X, 1 ≤ X ≤ 1000.
Изход
Изходният файл OUTPUT.TXT трябва да съдържа „Да“, ако има такъв ден, в който Вася сутрин няма пътувания на картата си, и „Не“ в противен случай.
Примери
№ INPUT.TXT OUTPUT.TXT
1 Начало
1 Да
2 училище
2 бр

Отговор:Много глупава задача. Не е ясно, че четен брой пътувания или нечетен брой - все едно, от две карти става четен. И цялата задача се свежда до едно примитивно условие.

Въпрос: Определете какъв е минималният брой пътувания с асансьора, необходими за повдигане на цялото оборудване


Теглото на 3 домакински уреда е дадено в kg (a, b, c). Определете какъв е минималният брой пътувания на асансьор с товароподемност n kg, които ще бъдат необходими за повдигане на цялото оборудване. Помогнете ми моля.

Отговор: inp_w може лесно да бъде съкратен с параметър:

Код на Паскал
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 процедура inp_w(q: низ; var x: двойно); начало повторение Write (q, " = " ); ReadLn(x) ; ако х<= 0 then WriteLn (q, "трябва да е по-голямо от нула, моля, въведете отново.") докато x > 0 край ; const m = "Маса на домакински уред"; g = "капацитет на повдигане"; var a, b, c, n: Реално; begin inp_w(m+ ""a"" , a) ; inp_w(m+ "b"", b); inp_w(m+ ""c"" , c) ; inp_w(g, n) ; ако (a > n) или (b > n) или (c > n), тогава Напишете ( "Невъзможно е да транспортирате всички домакински уреди извън този асансьор.") иначе ако a + b + c<= n then Write („Изисква 1 пътуване.“) иначе ако (a + b<= n) or (a + c <= n) or (b + c <= n) then Write („Изисква 2 пътувания.“) иначе Напиши ( „Ще отнеме 3 пътувания.“) ; ReadLn край.

Въпрос: Изчисляване на цената на пътуване с кола до страната


2. Направете програма за изчисляване на цената на пътуване с кола до страната (отиване и връщане). Изходните данни са: разстояние до вилата (в километри); количеството бензин, което автомобилът изразходва на 100 километра; цената на един литър бензин. По-долу е препоръчителният изглед на диалоговия прозорец, докато програмата работи. Въведеното от потребителя е показано с удебелен шрифт.
Изчисляване на цената на пътуване до страната.
Разстояние до вилата (км) - 67
Разход на бензин (л на 100 км) - 8,5
Цената на литър бензин (търкайте) - 23,7
Едно пътуване до селската къща ще струва 269 рубли. 94 коп.


Как да го направя?

Отговор:Първо, с вашите входни данни ще струва 134 рубли. 97 к., и второ

C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 int main() ( двоен km, r, p; int itog; cout<< "Разстояние до вилата (км) - "; cin >> km; cout<< "Разход на бензин (л на 100 км) - "; cin >> r; cout<< "Цена на литър бензин (руб.) - "; cin>p; itog = етаж ((km / 100 * r* p) * 100) ; cout<< „Едно пътуване до вилата ще струва“ << itog / 100 << " руб. " << itog % 100 << " коп." ; return 0 ; }

Изчислете разходите за бензин, необходим за пътуване до страната, ако знаете маршрута, разхода на гориво на 100 км и цената на литър гориво.
Създайте формуляр от вида, показан на фигура 1.

Снимка 1
За да изчислите цената на бензина в раздела за изпълнение, напишете функцията Цена.
Напишете манипулатор на щракване за бутона Изчисление. Етикетът lblMessage трябва да съдържа съобщение за цената на бензина. Не забравяйте да решите с функция!

Отговор: Кодът:

Делфи
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 unitMainU; интерфейсът използва Windows, съобщения, SysUtils, варианти, класове, графики, контроли, формуляри, диалогови прозорци, бутони, StdCtrl; тип TForm1 = клас (TForm) Label1: TLabel; edWay: TEdit; Етикет2: Етикет T; edFuel: TEdit; Етикет3: Етикет T; edCost: TEdit; btnRun: TButton; BitBtn1: TBitBtn; lblСъобщение: TLabel; процедура btnRunClick(Подател: TObject) ; процедура BitBtn1Click(Подател: TObject) ; private (Лични декларации) public (Публични декларации) край; var Form1: TForm1; изпълнение ($R *.dfm) функция Price(Way, Fuel, Cost: extended ) : extended ; начало Резултат: = (Път/ 100 ) * Гориво* Разходи; край ; процедура TForm1. btnRunClick(Подател: TObject) ; var eWay, eFuel, eCost: разширен; започнете опитайте eWay:= strtofloat(edWay. Текст) ; освен showmessage( „„Маршрутът в км“ трябва да е число!“) ; изход; край ; ако eWay<= 0 then begin showmessage(""Маршрутът в км" трябва да е по-голям от 0!") ; изход; край ; опитайте eFuel:=strtofloat(edFuel.Text) ; освен showmessage( „Разходът на гориво на 100 км в литри трябва да е число!“) ; изход; край ; ако eFuel<= 0 then begin showmessage(""Разход на гориво на 100 км в литри" трябва да бъде по-голям от 0!") ; изход; край ; опитайте eCost:= strtofloat(edCost. Text) ; освен showmessage( „„Цената на литър гориво“ трябва да е число!“) ; изход; край ; ако eCost<= 0 then begin showmessage(„„Цената на литър гориво“ трябва да е по-голяма от 0!“) ; изход; край ; lblСъобщение. Надпис := „Цената на бензина, необходима за пътуване до страната:“+ floattostr (Цена (eWay, eFuel, eCost) ) ; край ; процедура TForm1. BitBtn1Click (Подател: TObject) ; започнете отблизо; край ; край.

Прилагам проектна Delphi.

По този начин обикновено се решават прости логически задачи.

Пример 6Вадим, Сергей и Михаил изучават различни чужди езици: китайски, японски и арабски. На въпрос какъв език е учил всеки от тях, единият отговорил: „Вадим учи китайски, Сергей не учи китайски, а Михаил не учи арабски“. Впоследствие се оказа, че в този отговор само едно твърдение е вярно, а другите две са неверни. Какъв език учи всеки от младите хора?

Решение. Има три твърдения:

  1. Вадим учи китайски;
  2. Сергей не учи китайски;
  3. Михаил не учи арабски.

Ако първото твърдение е вярно, то второто също е вярно, тъй като младите мъже учат различни езици. Това противоречи на условието на проблема, така че първото твърдение е невярно.

Ако второто твърдение е вярно, то първото и третото трябва да са неверни. Оказва се, че никой не учи китайски. Това противоречи на условието, така че второто твърдение също е невярно.

Отговор:Сергей учи китайски, Михаил учи японски, а Вадим учи арабски.

Пример 7По време на пътуването петима приятели - Антон, Борис, Вадим, Дима и Гриша, се запознаха със свой спътник. Те я ​​помолиха да познае имената им и всеки от тях направи едно вярно и едно грешно твърдение:

Дима каза: "Моето фамилно име е Мишин, а фамилното име на Борис е Хохлов." Антон каза: "Мишин е моето фамилно име, а фамилното име на Вадим е Белкин." Борис каза: "Фамилията на Вадим е Тихонов, а моята фамилия е Мишин." Вадим каза: "Моята фамилия е Белкин, а фамилията на Гриша е Чехов." Гриша каза: "Да, моята фамилия е Чехов, а фамилията на Антон е Тихонов."

Какво е фамилното име на всеки приятел?

Решение.Нека обозначим предложната форма "млад мъж на име А има фамилно име Б" като A B, където буквите A и B съответстват на началните букви на името и фамилията.

Нека запишем изявленията на всеки от приятелите:

  1. D M и B X;
  2. A M и C B;
  3. V T и B M;
  4. C B и G C;
  5. G C и A T.

Нека първо приемем, че D M е вярно, но ако D M е вярно, тогава Антон и Борис трябва да имат различни фамилии, което означава, че A M и B M са неверни. Но ако A M и B M са неверни, тогава C B и C T трябва да са верни, но C B и C T не могат да бъдат истинни едновременно.

Това означава, че остава друг случай: вярно е B X. Този случай води до верига от изводи:

B X true B M false C T true A T false G W true C B false A M true.

Отговор:Борис - Хохлов, Вадим - Тихонов, Гриша - Чехов, Антон - Мишин, Дима - Белкин.

Пример 8Външните министри на Русия, САЩ и Китай обсъдиха при закрити врата представените от всяка от страните проекти на споразумения за пълно разоръжаване. След това, отговаряйки на въпроса на журналистите „Чий проект е приет?“, министрите дадоха следните отговори:

Русия – „Проектът не е наш, проектът не е на САЩ“;
САЩ – „Проектът не е Русия, проектът е Китай“;
Китай – „Проектът не е наш, проектът на Русия“.

Един от тях (най-откровеният) каза истината и двата пъти; вторият (най-потайният) и двата пъти каза лъжа, третият (предпазлив) веднъж каза истината, а другият път - лъжа.

Определете кои страни са представени от откровените, потайни и предпазливи министри.

Решение.За удобство на отбелязването, нека номерираме изявленията на дипломатите:

Русия - "Проектът не е наш" (1), "Проектът не е САЩ" (2);
САЩ - "Проект не Русия" (3), "Проект Китай" (4);
Китай - "Проектът не е наш" (5), "Проектът на Русия" (6).

Нека разберем кой от министрите е най-откровен.

Ако това е руски министър, то от валидността на (1) и (2) следва, че китайският проект е спечелил. Но тогава и двете твърдения на американския министър са верни, което не може да бъде под условие.

Ако най-откровен е американският министър, то отново получаваме, че китайският проект е спечелил, което означава, че и двете твърдения на руския министър са верни, което не може да е под условие.

Оказва се, че китайският министър е бил най-откровен. Наистина, от факта, че (5) и (6) са верни, следва, че руският проект е спечелил. И тогава се оказва, че от двете твърдения на руския министър първото е невярно, а второто е вярно. И двете твърдения на американския министър са грешни.

Отговор:Китайският министър беше по-откровен, руският беше по-предпазлив, а американският беше по-потаен.

Избор на редакторите
ИСТОРИЯ НА РУСИЯ Тема № 12 на СССР през 30-те години индустриализацията в СССР Индустриализацията е ускореното индустриално развитие на страната, в ...

ПРЕДГОВОР „... Така че в тези части, с Божията помощ, ние получихме крак, отколкото ви поздравяваме“, пише Петър I с радост до Санкт Петербург на 30 август ...

Тема 3. Либерализмът в Русия 1. Еволюцията на руския либерализъм Руският либерализъм е оригинално явление, основано на ...

Един от най-сложните и интересни проблеми в психологията е проблемът за индивидуалните различия. Трудно е да назова само един...
Руско-японската война 1904-1905 г беше от голямо историческо значение, въпреки че мнозина смятаха, че е абсолютно безсмислено. Но тази война...
Загубите на французите от действията на партизаните, очевидно, никога няма да бъдат преброени. Алексей Шишов разказва за "клуба на народната война", ...
Въведение В икономиката на всяка държава, откакто се появиха парите, емисиите играха и играят всеки ден многостранно, а понякога ...
Петър Велики е роден в Москва през 1672 г. Родителите му са Алексей Михайлович и Наталия Наришкина. Петър е отгледан от бавачки, образование в ...
Трудно е да се намери част от пилето, от която е невъзможно да се направи пилешка супа. Супа от пилешки гърди, пилешка супа...