Xor ძირითადი ოპერაციების მეშვეობით. ძირითადი ლოგიკური ოპერაციები (და, ან, xor, არა)

მთავარი / მობილური მოწყობილობები

ამ სტატიაში მე გეტყვით როგორ მუშაობს ბიტის ოპერაციები. ერთი შეხედვით ისინი შეიძლება რთულად და უსარგებლო მოგეჩვენოთ, მაგრამ სინამდვილეში ეს ასე არ არის. სწორედ ამაში ვეცდები დაგარწმუნოთ.

შესავალი

Bitwise ოპერატორები მოქმედებენ პირდაპირ რიცხვის ბიტებზე, ამიტომ მაგალითებში რიცხვები იქნება ორობითი.

მე დავფარავ შემდეგ ბიტვურ ოპერატორებს:

  • | (bitwise OR),
  • & (ბიტიური AND (AND)),
  • ^ (ექსკლუზივი OR (XOR)),
  • ~ (ბიტური უარყოფა (არ)),
  • << (Побитовый сдвиг влево),
  • >> (bitwise shift მარჯვნივ).

ბიტის ოპერაციები შესწავლილია დისკრეტულ მათემატიკაში და ასევე წარმოადგენს ციფრული ტექნოლოგიის საფუძველს, რადგან მათზეა დაფუძნებული ლოგიკური კარიბჭეების მუშაობის ლოგიკა, ციფრული სქემების ძირითადი ელემენტები. დისკრეტულ მათემატიკაში, ისევე როგორც ციფრულ ინჟინერიაში, სიმართლის ცხრილები გამოიყენება მათი მოქმედების აღსაწერად. სიმართლის ცხრილები, მეჩვენება, მნიშვნელოვნად უწყობს ხელს ბიტის ოპერაციების გაგებას, ამიტომ მათ ამ სტატიაში წარმოგიდგენთ. თუმცა, ისინი თითქმის არასოდეს გამოიყენება მაღალი დონის პროგრამირების ენების ბიტური ოპერატორების ახსნაში.

თქვენ ასევე უნდა იცოდეთ ბიტი ოპერატორების შესახებ:

  1. ზოგიერთი ბიტიური ოპერატორი ჰგავს იმ ოპერატორებს, რომლებსაც ალბათ იცნობთ (&&, ||). ეს იმიტომ ხდება, რომ ისინი გარკვეულწილად მსგავსია. თუმცა, ისინი არავითარ შემთხვევაში არ უნდა იყოს დაბნეული.
  2. ბიტის ოპერაციების უმეტესობა არის რთული მინიჭების ოპერაციები.

ბიტიური ან

Bitwise OR მოქმედებს ლოგიკური OR-ის ექვივალენტურად, მაგრამ გამოიყენება ორობითი რიცხვის ბიტების თითოეულ წყვილზე. შედეგის ორობითი ბიტი არის 0 მხოლოდ მაშინ, როდესაც ორივე შესაბამისი ბიტი არის 0. ყველა სხვა შემთხვევაში, ორობითი შედეგი არის 1. ანუ, თუ გვაქვს შემდეგი ჭეშმარიტების ცხრილი:

38 | 53 ასე იქნება:

0 0 1 0 0 1 1 0
0 0 1 1 0 1 0 1
A | ბ 0 0 1 1 0 1 1 1

შედეგად, ვიღებთ 110111 2, ანუ 55 10.

ბიტალურად და

Bitwise AND არის ერთგვარი საპირისპირო ოპერაცია bitwise OR. შედეგის ორობითი ციფრი არის 1 მხოლოდ მაშინ, როდესაც ოპერანდების ორივე შესაბამისი ბიტი უდრის 1-ს. სხვა სიტყვებით რომ ვთქვათ, შეგვიძლია ვთქვათ, რომ მიღებული რიცხვის ორობითი ციფრები არის ოპერანდის შესაბამისი ბიტების გამრავლების შედეგი: 1x1 = 1, 1x0 = 0. შემდეგი ჭეშმარიტების ცხრილი შეესაბამება AND-ს:

Bitwise AND-ის მაგალითი 38 და 53 გამოსახულებაზე მუშაობისთვის:

0 0 1 0 0 1 1 0
0 0 1 1 0 1 0 1
A&B 0 0 1 0 0 1 0 0

შედეგად, ჩვენ ვიღებთ 100100 2, ან 36 10.

შეგიძლიათ გამოიყენოთ bitwise AND ოპერატორი, რათა შეამოწმოთ რიცხვი ლუწია თუ კენტი. მთელი რიცხვებისთვის, თუ ყველაზე ნაკლებად მნიშვნელოვანი ბიტი არის 1, მაშინ რიცხვი კენტია (ორობითი ათწილადში გადაყვანის საფუძველზე). რატომ არის ეს აუცილებელი, თუ შეგიძლიათ უბრალოდ გამოიყენოთ %2? ჩემს კომპიუტერზე, მაგალითად, &1 მუშაობს 66%-ით უფრო სწრაფად. საკმაოდ კარგი შესრულების სტიმულია, ნება მომეცით გითხრათ.

ექსკლუზივი OR (XOR)

განსხვავება XOR-სა და bitwise OR-ს შორის არის ის, რომ 1-ის წარმოებისთვის, წყვილში მხოლოდ ერთი ბიტი შეიძლება იყოს 1:

მაგალითად, გამოხატულება 138^43 ტოლი იქნება...

1 0 0 0 1 0 1 0
0 0 1 0 1 0 1 1
A^B 1 0 1 0 0 0 0 1

… 10100001 2, ან 160 10

^-ის გამოყენებით შეგიძლიათ შეცვალოთ ორი ცვლადის მნიშვნელობები (მონაცემთა იგივე ტიპი) დროებითი ცვლადის გამოყენების გარეშე.

თქვენ ასევე შეგიძლიათ დაშიფროთ ტექსტი ექსკლუზიური OR გამოყენებით. ამისათვის თქვენ უბრალოდ უნდა გაიმეოროთ ყველა სიმბოლო და ^ ისინი საკვანძო სიმბოლოთი. უფრო რთული შიფრისთვის შეგიძლიათ გამოიყენოთ სიმბოლოების სტრიქონი:

String msg = "ეს არის შეტყობინება"; char შეტყობინება = msg.toCharArray(); სიმებიანი გასაღები = ".*)"; String encryptedString = new String(); for(int i = 0; i< message.length; i++){ encryptedString += message[i]^key.toCharArray(); }

XOR არ არის დაშიფვრის ყველაზე უსაფრთხო მეთოდი, მაგრამ ის შეიძლება გახდეს დაშიფვრის ალგორითმის ნაწილი.

ბიტური უარყოფა (არ)

ბიტის უარყოფა აბრუნებს ოპერანდის ყველა ბიტს. ანუ რაც იყო 1 გახდება 0 და პირიქით.

მაგალითად, აქ არის ოპერაცია ~52:

0 0 1 1 0 1 0 0
~ ა 1 1 0 0 1 0 1 1

შედეგი იქნება 203 10

ბიტური უარყოფის გამოყენებისას, შედეგის ნიშანი ყოველთვის იქნება საწყისი რიცხვის საპირისპირო ნიშანი (ხელმოწერილი რიცხვებით მუშაობისას). გაარკვიეთ, რატომ ხდება ეს ახლავე.

დამატებითი კოდი

აქვე უნდა გითხრათ კომპიუტერში უარყოფითი მთელი რიცხვების წარმოდგენის ხერხის შესახებ, კერძოდ, ამ ორი კომპლემენტის კოდის შესახებ. დეტალებში ჩასვლის გარეშე, საჭიროა ორობითი რიცხვების არითმეტიკის გასაადვილებლად.

მთავარი, რაც თქვენ უნდა იცოდეთ ორი კომპლიმენტში ჩაწერილი რიცხვების შესახებ არის ის, რომ ყველაზე მნიშვნელოვანი ბიტი არის ხელმოწერილი. თუ ეს არის 0, მაშინ რიცხვი დადებითია და ემთხვევა ამ რიცხვის წარმოდგენას პირდაპირ კოდში, ხოლო თუ 1, მაშინ ის უარყოფითია. ანუ 10111101 არის უარყოფითი რიცხვი, ხოლო 01000011 დადებითი რიცხვია.

უარყოფითი რიცხვის მის ორ კომპლიმენტად გადასაყვანად, თქვენ უნდა შეცვალოთ რიცხვის ყველა ბიტი (ძირითადად ბიტური უარყოფის გამოყენებით) და შედეგს დაამატოთ 1.

მაგალითად, თუ გვაქვს 109:

0 1 1 0 1 1 0 1
~ ა 1 0 0 1 0 0 1 0
~ A + 1 1 0 0 1 0 0 1 1

ზემოაღნიშნული მეთოდით ვიღებთ -109-ს ორი კომპლემენტის კოდში.
ახლახან წარმოდგენილია დამატებითი კოდის ძალიან გამარტივებული ახსნა და მოგიწოდებთ, რომ უფრო დეტალურად შეისწავლოთ ეს თემა.

ბიტური გადაადგილება მარცხნივ

ბიტის ცვლა ოდნავ განსხვავდება ადრე განხილული ბიტის ოპერაციებისგან. მარცხნივ ბიტთან ცვლა გადააქვს თავისი ოპერანდის N ბიტების ბიტებს მარცხნივ, დაწყებული ყველაზე ნაკლებად მნიშვნელოვანი ბიტით. ცვლის შემდეგ ცარიელი ადგილები ივსება ნულებით. ეს ხდება ასე:

1 0 1 1 0 1 0 0
ა<<2 1 1 0 1 0 0 0 0

N პოზიციებით მარცხნივ გადანაცვლების საინტერესო თვისება ის არის, რომ ეს რიცხვის 2 N-ზე გამრავლების ტოლფასია. ასე რომ 43<<4 == 43*Math.pow(2,4) . Использование сдвига влево вместо Math.pow обеспечит неплохой прирост производительности.

ბიტალურად გადაიტანეთ მარჯვნივ

როგორც თქვენ ალბათ მიხვდებით, >> ანაცვლებს ოპერანდის ბიტებს ბიტების განსაზღვრული რაოდენობით მარჯვნივ.

თუ ოპერანდი დადებითია, მაშინ ცარიელი ადგილები ივსება ნულებით. თუ თავდაპირველად ვმუშაობთ უარყოფით რიცხვთან, მაშინ მარცხნივ ყველა ცარიელი ადგილი ივსება ერთით. ეს კეთდება ნიშნის შესანარჩუნებლად ადრე ახსნილი დამატებითი კოდის მიხედვით.

ვინაიდან bitwise shift მარჯვნივ არის bitwise shift მარცხნივ საპირისპირო ოპერაცია, ადვილი მისახვედრია, რომ რიცხვის მარჯვნივ გადატანა N პოზიციებზე ასევე ამ რიცხვს ყოფს 2 N-ზე. ისევ და ისევ, ეს ბევრად უფრო სწრაფია, ვიდრე ჩვეულებრივი გაყოფა.

დასკვნა

ასე რომ, ახლა თქვენ იცით მეტი ბიტის ოპერაციების შესახებ და არ გეშინიათ მათი. შემიძლია ვივარაუდო, რომ თქვენ არ გამოიყენებთ >>1-ს ყოველ ჯერზე, როცა გაყოფთ 2-ზე. თუმცა, ბიტის ოპერაციები კარგია თქვენს არსენალში და ახლა შეგიძლიათ გამოიყენოთ ისინი საჭიროების შემთხვევაში ან უპასუხოთ რთულ ინტერვიუს კითხვას.

ხშირად პრობლემების გადაჭრისას ერთშრიანი პერცეპტრონების შეზღუდული შესაძლებლობების დემონსტრირების მიზნით მიმართავენ ე.წ. XOR – ექსკლუზიური OR.

დავალების არსი შემდეგია. მოცემულია XOR ლოგიკური ფუნქცია - ექსკლუზიური OR. ეს არის ორი არგუმენტის ფუნქცია, რომელთაგან თითოეული შეიძლება იყოს ნული ან ერთი. ის იღებს მნიშვნელობას, როდესაც ერთ-ერთი არგუმენტი უდრის ერთს, მაგრამ არა ორივეს, წინააღმდეგ შემთხვევაში. პრობლემა შეიძლება ილუსტრირებული იყოს ერთშრიანი, ერთნეირონიანი, ორ შეყვანის სისტემის გამოყენებით, რომელიც ნაჩვენებია ქვემოთ მოცემულ ფიგურაში.

მოდით აღვნიშნოთ ერთი შეყვანა - ით, ხოლო მეორე - ით, მაშინ მათი ყველა შესაძლო კომბინაცია შედგება სიბრტყის ოთხი წერტილისგან. ქვემოთ მოყვანილი ცხრილი გვიჩვენებს აუცილებელ ურთიერთობას შეყვანასა და გამომავალს შორის, სადაც შეყვანის კომბინაციები, რომლებმაც უნდა გამოიღონ ნულოვანი გამომავალი, იარლიყება და , ერთი გამომავალი იარლიყება და .

ქულები მნიშვნელობა მნიშვნელობა საჭირო გამომავალი
0 0 0
1 0 1
0 1 1
1 1 0

ერთ ნეირონს ორი შეყვანით შეუძლია შექმნას გადაწყვეტილების ზედაპირი თვითნებური სწორი ხაზის სახით. იმისათვის, რომ ქსელმა განახორციელოს ზემოთ ცხრილში მითითებული XOR ფუნქცია, თქვენ უნდა მოათავსოთ ხაზი ისე, რომ წერტილები იყოს ხაზის ერთ მხარეს, ხოლო წერტილები მეორე მხარეს. როდესაც ვცდილობდით ქვემოთ მოცემულ ფიგურაში ასეთი სწორი ხაზის დახატვას, ჩვენ დავრწმუნდით, რომ ეს შეუძლებელია. ეს ნიშნავს, რომ რა მნიშვნელობებიც არ უნდა იყოს მინიჭებული წონებსა და ზღურბლზე, ერთშრიანი ნერვული ქსელი ვერ ახერხებს XOR ფუნქციის წარმოსადგენად საჭირო შეყვანასა და გამომავალს შორის კავშირის რეპროდუცირებას.

თუმცა, XOR ფუნქცია ადვილად ყალიბდება ორ ფენიანი ქსელით და მრავალი თვალსაზრისით. განვიხილოთ ერთ-ერთი ასეთი მეთოდი. მოდით გავაუმჯობესოთ ქსელი ფიგურაში ნეირონების კიდევ ერთი ფარული ფენის დამატებით:

გაითვალისწინეთ რომ ამ ქსელსმოცემული როგორც არის, ე.ი. შეიძლება ვივარაუდოთ, რომ ის უკვე გაწვრთნილი იყო. ისრების ზემოთ რიცხვები აჩვენებს სინაფსური წონის მნიშვნელობებს. როგორც გააქტიურების ფუნქცია, ჩვენ გამოვიყენებთ ერთჯერადი ნახტომის ფუნქციას, რომელსაც აქვს შემდეგი გრაფიკი:

შემდეგ ასეთი ნერვული ქსელის მუშაობის შედეგი შეიძლება წარმოდგენილი იყოს შემდეგი ცხრილის სახით:

ქულები მნიშვნელობა მნიშვნელობა საჭირო გამომავალი
0 0 0 0 0 0
1 0 1 1 0 1
0 1 1 0 1 1
1 1 0 0 0 0

პირველი ფენის ორი ნეირონიდან თითოეული ქმნის გადაწყვეტილების ზედაპირს თვითნებური სწორი ხაზის სახით (ყოფს სიბრტყეს ორ ნახევრად სიბრტყეზე), ხოლო გამომავალი ფენის ნეირონი აერთიანებს ამ ორ ხსნარს და ქმნის გადაწყვეტილების ზედაპირს. პირველი ფენის ნეირონების პარალელური სწორი ხაზებით წარმოქმნილი ზოლის ფორმა:

ნერვული ქსელი, რომელიც გამოიყენება ამ სტატიაში XOR პრობლემის გადასაჭრელად, პრიმიტიულია და სრულად არ იყენებს მრავალშრიანი ქსელების შესაძლებლობებს. ცხადია, მრავალშრიანი ნერვული ქსელებიაქვთ უფრო დიდი წარმომადგენლობითი ძალა, ვიდრე ერთშრიანი მხოლოდ არაწრფივობის არსებობის შემთხვევაში. და ამ ქსელში გამოიყენება ბარიერის ხაზოვანი აქტივაციის ფუნქცია. ასეთი ქსელის მომზადება არ შეიძლება, მაგალითად, უკანა გავრცელების ალგორითმის გამოყენებით.

აბსოლუტურად ყველა ციფრული მიკროსქემა შედგება იგივე ლოგიკური ელემენტებისაგან - ნებისმიერი ციფრული კვანძის "სამშენებლო ბლოკები". სწორედ ამაზე ვისაუბრებთ ახლა.

ლოგიკური ელემენტი- ეს არის წრე, რომელსაც აქვს რამდენიმე შეყვანა და ერთი გამომავალი. შეყვანის სიგნალების თითოეული მდგომარეობა შეესაბამება კონკრეტულ სიგნალს გამოსავალზე.

მაშ რა არის ელემენტები?

ელემენტი "და"

სხვაგვარად მას "კონიუნქტორს" უწოდებენ.

იმის გასაგებად, თუ როგორ მუშაობს ის, თქვენ უნდა დახაზოთ ცხრილი, რომელიც ჩამოთვლის გამომავალ მდგომარეობებს შეყვანის სიგნალების ნებისმიერი კომბინაციისთვის. ამ ცხრილს ე.წ. სიმართლის ცხრილი" სიმართლის ცხრილები ფართოდ გამოიყენება ციფრულ ტექნოლოგიაში ლოგიკური სქემების მუშაობის აღსაწერად.

ასე გამოიყურება "AND" ელემენტი და მისი სიმართლის ცხრილი:

ვინაიდან მოგიწევთ კომუნიკაცია როგორც რუსულ, ისე ბურჟუაზიულ ტექნიკასთან. დოკუმენტაცია, მე მივაწოდებ ელემენტების სიმბოლურ გრაფიკულ სიმბოლოებს (GID) როგორც ჩვენი, ისე არაჩვენი სტანდარტების მიხედვით.

ჩვენ ვუყურებთ სიმართლის ცხრილს და ვაზუსტებთ პრინციპს ჩვენს ტვინში. ძნელი გასაგები არ არის: ერთეული "AND" ელემენტის გამოსავალზე ჩნდება მხოლოდ მაშინ, როდესაც ერთეულები მიეწოდება ორივე შეყვანას. ეს განმარტავს ელემენტის სახელს: ერთეულები უნდა იყოს როგორც ერთზე, ასევე მეორეზე.

თუ ცოტა სხვანაირად შევხედავთ, შეგვიძლია ასე ვთქვათ: "AND" ელემენტის გამომავალი იქნება ნული, თუ ნული გამოყენებული იქნება მის ერთ-ერთ შეყვანაზე მაინც. გავიხსენოთ. მოდით გადავიდეთ.

ან ელემენტი

სხვაგვარად, მას უწოდებენ "disjunctor".

ჩვენ აღფრთოვანებული ვართ:

ისევ და ისევ, სახელი თავისთავად საუბრობს.

ერთეული ჩნდება გამოსავალზე, როდესაც ერთეული გამოიყენება ერთზე ან მეორეზე ან ორივე შეყვანზე ერთდროულად. ამ ელემენტს ასევე შეიძლება ეწოდოს "AND" ელემენტი უარყოფითი ლოგიკისთვის: მის გამოსავალზე ნული ჩნდება მხოლოდ იმ შემთხვევაში, თუ ნულები მიეწოდება როგორც ერთს, ასევე მეორე შეყვანას.

NOTE ელემენტი

უფრო ხშირად მას "ინვერტორს" უწოდებენ.

მჭირდება რამე ვთქვა მის საქმიანობაზე?

NAND ელემენტი

NAND კარიბჭე მუშაობს ზუსტად ისევე, როგორც AND კარიბჭე, მხოლოდ გამომავალი სიგნალი არის სრულიად საპირისპირო. სადაც "AND" ელემენტს უნდა ჰქონდეს "0" გამომავალი, "AND-NOT" ელემენტს უნდა ჰქონდეს ერთი. და პირიქით. ამის გაგება მარტივია ელემენტის ეკვივალენტური სქემიდან:

ელემენტი "NOR" (NOR)

იგივე ამბავი - "OR" ელემენტი გამოსავალზე ინვერტორთან ერთად.

შემდეგი ამხანაგი ცოტა უფრო მზაკვარია:
ექსკლუზიური OR ელემენტი (XOR)

ის ასეთია:

ოპერაციას, რომელსაც ის ასრულებს, ხშირად უწოდებენ "დამატების მოდულს 2". სინამდვილეში, ციფრული დამამატებლები აგებულია ამ ელემენტებზე.

მოდით შევხედოთ სიმართლის ცხრილს. როდის არის გამომავალი ერთეული? სწორია: როდესაც შეყვანას აქვს სხვადასხვა სიგნალი. ერთზე - 1, მეორეზე - 0. აი რა ეშმაკურია.

ეკვივალენტური წრე დაახლოებით ასეთია:

არ არის აუცილებელი მისი დამახსოვრება.

სინამდვილეში, ეს არის მთავარი ლოგიკური ელემენტები. აბსოლუტურად ნებისმიერი ციფრული მიკროსქემები აგებულია მათ საფუძველზე. თუნდაც თქვენი საყვარელი Pentium 4.

და ბოლოს, ციფრული ელემენტების შემცველი რამდენიმე მიკროსქემა. მიკროსქემის შესაბამისი ფეხების ნომრები მითითებულია ელემენტების ტერმინალებთან. აქ ჩამოთვლილ ყველა ჩიპს აქვს 14 ფეხი. ძალა მიეწოდება ფეხებს 7 (-) და 14 (+). მიწოდების ძაბვა - იხილეთ ცხრილი წინა აბზაცში.

მითითებულია მეტყველების ფიგურით „ან... ან...“ რთული დებულება „ან A ან B“ მართალია, როდესაც ან A ან B მართალია, მაგრამ არა ორივე; ვ წინააღმდეგ შემთხვევაშირთული განცხადება მცდარია.

იმათ. შედეგი არის ჭეშმარიტი (1-ის ტოლი), თუ A არ უდრის B-ს (A≠B).

ამ ოპერაციას ხშირად ადარებენ დისუნქციას, რადგან ისინი ძალიან ჰგავს თვისებებს და ორივეს აქვს მსგავსება კავშირთან „ან“ ყოველდღიურ მეტყველებაში. შეადარეთ ამ ოპერაციების წესები:

1. მართალია თუ მართალია ან , ანორივე ერთდროულად.

2. მართალია თუ მართალია ან, მაგრამ არაორივე ერთდროულად.

ოპერაცია გამორიცხავსეს უკანასკნელი ვარიანტი ("ორივე ერთდროულად") და ამ მიზეზით ეწოდება ექსკლუზიური "OR". გაურკვევლობაბუნებრივი ენა ის არის, რომ კავშირი „ან“ შეიძლება გამოყენებულ იქნას ორივე შემთხვევაში.

5. იმპლიკაცია (ლოგიკური შედეგი)იქმნება ორი განცხადების ერთში გაერთიანებით მეტყველების ფიგურის გამოყენებით „თუ ... მაშინ ....“.

ჩაწერა: A®B

იმპლიკაციით წარმოქმნილი რთული დებულება მცდარია, თუ და მხოლოდ მაშინ, თუ მცდარი დასკვნა (მეორე განცხადება) გამომდინარეობს ჭეშმარიტი წინაპირობიდან (პირველი განცხადება).

იმათ. თუ 1 გულისხმობს 0, მაშინ შედეგი არის 0, სხვა შემთხვევებში - 1.

მაგალითად, დებულება "თუ რიცხვი იყოფა 10-ზე, მაშინ იგი იყოფა 5-ზე" მართალია, რადგან პირველი და მეორე განცხადებები მართალია.

განცხადება „თუ რიცხვი იყოფა 10-ზე, მაშინ იგი იყოფა 3-ზე“ მცდარია, რადგან მცდარი დასკვნა გამოტანილია ჭეშმარიტი წინაპირობიდან.

"ეს ოთხკუთხედი არის კვადრატი" () და "წრე შეიძლება შემოიფარგლოს მოცემული ოთხკუთხედის გარშემო" (IN). შემდეგ რთული განცხადება იკითხება როგორც "თუ მოცემული ოთხკუთხედი არის კვადრატი, მაშინ მის გარშემო წრე შეიძლება დაიხაზოს."

ჩვეულებრივ მეტყველებაში შემაერთებელი "თუ... მაშინ"აღწერს განცხადებებს შორის მიზეზ-შედეგობრივ კავშირს. მაგრამ ლოგიკურ ოპერაციებში განცხადებების მნიშვნელობა არ არის გათვალისწინებული. განიხილება მხოლოდ მათი სიმართლე ან სიცრუე. მაშასადამე, არ უნდა შეგრცხვეს იმ იმპლიკაციებით, რომლებიც წარმოიქმნება შინაარსით სრულიად შეუსაბამო განცხადებებით. მაგალითად, ასე: „თუ შეერთებული შტატების პრეზიდენტი დემოკრატია, მაშინ აფრიკაში ჟირაფები არიან“, „თუ საზამთრო კენკრაა, მაშინ ბენზინი ბენზინგასამართ სადგურზეა“.

6. ეკვივალენტობა (ლოგიკური თანასწორობა, ~ º Û) ყალიბდება ორი დებულების ერთში გაერთიანებით მეტყველების ფიგურის გამოყენებით „...თუ და მხოლოდ თუ...“

ეკვივალენტობის ოპერაციით ჩამოყალიბებული რთული დებულება მართალია, თუ და მხოლოდ იმ შემთხვევაში, თუ ორივე განცხადება ერთდროულად არის მცდარი ან ჭეშმარიტი.

მაგალითად, დებულებები „კომპიუტერს შეუძლია გამოთვლა, თუ ჩართულია და მხოლოდ მაშინ, თუ ჩართულია“ და „კომპიუტერს არ შეუძლია გამოთვლა, თუ ჩართულია და მხოლოდ მაშინ“, მართალია, რადგან ორივე მარტივი განცხადება ერთდროულად ჭეშმარიტია.


სიმართლის ცხრილები

თითოეული რთული განცხადებისთვის (ლოგიკური ფუნქციისთვის) შესაძლებელია ჭეშმარიტების ცხრილის აგება, რომელიც განსაზღვრავს მის სიმართლეს ან სიცრუეს მარტივი განცხადებების საწყისი მნიშვნელობების ყველა შესაძლო კომბინაციისთვის.

სიმართლის ცხრილიეს არის მაგიდის ხედი ლოგიკური წრე(ოპერაციები), სადაც ჩამოთვლილია შეყვანის სიგნალების (ოპერანდების) სიმართლის მნიშვნელობების ყველა შესაძლო კომბინაცია და გამომავალი სიგნალის სიმართლის მნიშვნელობა (ოპერაციის შედეგი) თითოეული ამ კომბინაციისთვის.

მოდით ავსახოთ ზემოთ განხილული ლოგიკური ოპერაციებისიმართლის ცხრილში:

წინადადებების ალგებრაში ყველა ლოგიკური ფუნქცია ლოგიკური გარდაქმნებით შეიძლება შემცირდეს სამ ძირითადზე: ლოგიკური შეკრება, ლოგიკური გამრავლება და ლოგიკური უარყოფა.

მოდით დავამტკიცოთ, რომ იმპლიკაციური ოპერაცია A®B არის ლოგიკური გამოხატვის ექვივალენტური:

ოპერაცია ექსკლუზიური OR (არაეკვივალენტობა, მიმატების მოდული ორი) აღინიშნება სიმბოლოთი და განსხვავდება ლოგიკური OR-ისგან მხოლოდ მაშინ, როდესაც A=1 და B=1.

ამრიგად, ორი განცხადების X1 და X2 განსხვავებულობას ეწოდება Y დებულება, რომელიც არის ჭეშმარიტი, თუ და მხოლოდ იმ შემთხვევაში, თუ ამ განცხადებებიდან ერთი არის ჭეშმარიტი და მეორე მცდარი.

ამ ოპერაციის განმარტება შეიძლება დაიწეროს ჭეშმარიტების ცხრილის სახით (ცხრილი 6):

ცხრილი 6 - ოპერაციის "EXCLUSIVE OR" სიმართლის ცხრილი

როგორც მე-6 ცხრილიდან ჩანს, ელემენტის მოქმედების ლოგიკა შეესაბამება მის სახელს.

ეს არის იგივე "OR" ელემენტი ერთი მცირე განსხვავებით. თუ ორივე შეყვანის მნიშვნელობა ტოლია ლოგიკური, მაშინ "EXCLUSIVE OR" ელემენტის გამომავალი, "OR" ელემენტისგან განსხვავებით, არის არა ერთი, არამედ ნული.

ოპერაცია EXCLUSIVE OR რეალურად ადარებს ორ ბინარულ ციფრს მატჩისთვის.

თითოეული ლოგიკური კავშირი განიხილება, როგორც ოპერაცია ლოგიკურ დებულებებზე და აქვს საკუთარი სახელი და აღნიშვნა (ცხრილი 7).

ცხრილი 7 - ძირითადი ლოგიკური ოპერაციები

აღნიშვნა

ოპერაციები

კითხვა

ოპერაციის სახელი

ალტერნატიული აღნიშვნები

უარყოფა (ინვერსია)

ხაზი ზედა

შეერთება (ლოგიკური გამრავლება)

დისჯუნქცია (ლოგიკური დამატება)

თუ... მაშინ

იმპლიკაცია

მაშინ და მხოლოდ მაშინ

ეკვივალენტობა

ან... ან

ექსკლუზივი ან (დამატების მოდული 2)

  1. ლოგიკური მოქმედებების თანმიმდევრობა რთულ ლოგიკურ გამოხატულებაში

ინვერსიის, შეერთების და დისიუნქციის ლოგიკური ოპერაციების სისტემა საშუალებას გაძლევთ შექმნათ თვითნებურად რთული ლოგიკური გამოხატულება.

ლოგიკური გამოხატვის მნიშვნელობის გაანგარიშებისას მიიღება ლოგიკური ოპერაციების გარკვეული რიგი.

1. ინვერსია.

2. შეერთება.

3. დისჯუნქცია.

4. იმპლიკამენტი.

5. ეკვივალენტობა.

ფრჩხილები გამოიყენება ოპერაციების მითითებული თანმიმდევრობის შესაცვლელად.

  1. ლოგიკური გამონათქვამები და სიმართლის ცხრილები

    1. ლოგიკური გამონათქვამები

თითოეული რთული დებულება შეიძლება გამოიხატოს ფორმულის სახით (ლოგიკური გამოხატულება), რომელიც მოიცავს ლოგიკური ცვლადები,განცხადებების აღმნიშვნელი და ლოგიკური მოქმედებების ნიშნები,ლოგიკური ფუნქციების აღმნიშვნელი.

რთული დებულების დასაწერად ლოგიკური გამონათქვამის სახით ფორმალურ ენაზე (ლოგიკის ალგებრის ენა), შედგენილ დებულებაში აუცილებელია მარტივი დებულებების და მათ შორის ლოგიკური კავშირების იდენტიფიცირება.

მოდით, ლოგიკური გამოთქმის სახით დავწეროთ რთული დებულება „(2·2=5 ან 2∙2=4) და (2∙2≠5 ან 2∙ 2 4)".

გავაანალიზოთ რთული დებულება. იგი შეიცავს ორ მარტივ განცხადებას:

A = "2 2=5" - მცდარი (0),

B = "2 2=4" - მართალია (1).

შემდეგ რთული განცხადება შეიძლება დაიწეროს შემდეგი ფორმით:

«( ანIN) და (Ā orIN)».

ახლა თქვენ უნდა დაწეროთ განცხადება ლოგიკური გამოხატვის სახით, ლოგიკური ოპერაციების თანმიმდევრობის გათვალისწინებით. ლოგიკური ოპერაციების შესრულებისას განისაზღვრება მათი შესრულების შემდეგი თანმიმდევრობა:

ინვერსია, შეერთება, დისიუნქცია.

ფრჩხილების გამოყენება შესაძლებელია მითითებული თანმიმდევრობის შესაცვლელად:

= (IN) & (Ā IN).

რთული განცხადებების ჭეშმარიტება ან სიცრუე შეიძლება განისაზღვროს მხოლოდ ფორმალურად, წინადადებების ალგებრის კანონებით ხელმძღვანელობით, განცხადებების სემანტიკური შინაარსის მითითების გარეშე.

მოდით ჩავანაცვლოთ ლოგიკური ცვლადების მნიშვნელობები ლოგიკურ გამოსახულებაში და ძირითადი ლოგიკური ოპერაციების სიმართლის ცხრილების გამოყენებით მივიღებთ ლოგიკური ფუნქციის მნიშვნელობას:

= (A v B) & ( Ā v B) = (0 v 1) & (1 v 0) = 1 & 1 = 1.

      სიმართლის ცხრილები

ცხრილებს, რომლებშიც ლოგიკური ოპერაციები ასახავს რთული განცხადებების გამოთვლების შედეგებს ორიგინალური მარტივი განცხადებების სხვადასხვა მნიშვნელობებისთვის, ეწოდება ჭეშმარიტების ცხრილები.

მარტივი განცხადებები აღინიშნება ცვლადებით (მაგალითად, A და B).

სიმართლის ცხრილების აგებისას მიზანშეწონილია იხელმძღვანელოთ მოქმედებების გარკვეული თანმიმდევრობით:

    აუცილებელია ჭეშმარიტების ცხრილში რიგების რაოდენობის დადგენა. უდრის რაოდენობას შესაძლო კომბინაციებილოგიკური ცვლადების მნიშვნელობები, რომლებიც შედის ლოგიკურ გამოსახულებაში. თუ ლოგიკური ცვლადების რაოდენობა ტოლია გვ,რომ:

ხაზების რაოდენობა = 2 .

ჩვენს შემთხვევაში, ლოგიკური ფუნქცია

აქვს 2 ცვლადი და ამიტომ ჭეშმარიტების ცხრილში რიგების რაოდენობა უნდა იყოს 4;

    აუცილებელია სიმართლის ცხრილში სვეტების რაოდენობის დადგენა, რომელიც ტოლია ლოგიკური ცვლადების რაოდენობას პლუს ლოგიკური ოპერაციების რაოდენობა.

ჩვენს შემთხვევაში ცვლადების რაოდენობა არის ორი: A და B, ხოლო ლოგიკური მოქმედებების რაოდენობა ხუთი (ცხრილი 8), ანუ ჭეშმარიტების ცხრილის სვეტების რაოდენობა შვიდია;

    აუცილებელია სიმართლის ცხრილის შექმნა მწკრივებისა და სვეტების მითითებული რაოდენობის მიხედვით, სვეტების დანიშვნა და ცხრილში შეყვანა ორიგინალური ლოგიკური ცვლადების მნიშვნელობების შესაძლო კომპლექტებით;

    აუცილებელია სიმართლის ცხრილის შევსება სვეტებით, ძირითადი ლოგიკური ოპერაციების შესრულება საჭირო თანმიმდევრობით და მათი სიმართლის ცხრილების შესაბამისად.

ახლა ჩვენ შეგვიძლია განვსაზღვროთ ლოგიკური ფუნქციის მნიშვნელობა ლოგიკური ცვლადის მნიშვნელობების ნებისმიერი ნაკრებისთვის.

ცხრილი 8 – ლოგიკური ფუნქციის სიმართლის ცხრილი

© 2024 ermake.ru -- კომპიუტერის შეკეთების შესახებ - საინფორმაციო პორტალი