«correctness-proof» etiketlenmiş sorular

Algoritmaların doğruluk kanıtlarını isteyen veya bunlarla ilgili sorular.

29
Matematiksel kanıtları yazmak neden bilgisayar kodunu yazmaktan daha hatalıdır?
Herhangi bir hata yapmadan matematiksel kanıtları yazmayı, hata yapmayan bir bilgisayar programı yazmayı çok daha kolay bulduğumu fark ettim. Görünüşe göre bu benim deneyimimden daha yaygın bir şey. Çoğu insan programlarında sürekli yazılım hataları yapar ve her zaman hatanın ne olduğunu söyleyen derleyicileri vardır. Büyük bir bilgisayar programı yazan ve …

13
“Bazı test davalarını dene” buluşunu nasıl kandırabilirim: Doğru görünen fakat aslında yanlış olan algoritmalar
Bazı problemler için bir algoritmanın doğru olup olmadığını test etmek için, normal başlangıç ​​noktası algoritmayı bir dizi basit test durumunda elle çalıştırmayı denemek - birkaç basit "köşe durumu" da dahil olmak üzere birkaç örnek problem örneğinde deneyiniz. ". Bu harika bir buluşsal yöntemdir: Bir algoritmada birçok yanlış girişimi hızlı bir …

2
Açgözlü algoritma kanıtlamak nasıl doğru
Doğru olabileceğinden şüphelendiğim açgözlü bir algoritma var ama emin değilim. Doğru olup olmadığını nasıl kontrol edebilirim? Açgözlü bir algoritmayı doğrulamak için kullanılacak teknikler nelerdir? Ortak kalıplar veya teknikler var mı? Bunun yeni başlayanlara işaret etmek için kullanılabilecek bir referans sorusu olacağını umuyorum ; dolayısıyla normalden daha geniş kapsamı. Lütfen en …

1
Karıştırma algoritmasının doğruluğu nasıl kanıtlanır?
Rastgele bir sıraya göre bir öğe listesi üretmenin iki yolu var ve eşit derecede adil (tarafsız) olup olmadıklarını belirlemek istiyorum. Kullandığım ilk yöntem, tüm öğelerin listesini oluşturmak ve ardından üzerinde bir karıştırmak (bir Fisher-Yates karıştırması demek). İkinci yöntem, listeyi her girişte karıştırılmış tutan bir yinelemeli yöntemdir. Sahte kodda ekleme işlevi: …


5
Doğruluk kanıtı olmayan bir algoritma örneği
Hoare mantığımız var. Neden bir algoritmanın doğru olduğu hala mümkün, ancak doğru olduğuna dair bir kanıt yok? Algoritmanın C ile ifade edildiğini varsayalım. Sonra adım adım yapması gerekeni yaptığını söyleyebiliriz. Benim sorum şu: Bana doğru olan ancak doğruluk kanıtı olmayan bir algoritma örneği verin. EDIT: Ben küçük bir arka plan …

6
Bir aralıkta iki sayının maksimum XOR değerini bulma: ikinci dereceden daha iyisini yapabilir miyiz?
İki ve sayısı verildiğini ve l \ le i, \, j \ le r için bulmak istediğimizi varsayalım .lllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r Saf algoritma tüm olası çiftleri kontrol eder; örneğin yakutta: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if (i ^ j > max) max …

3
Bu Quicksort Düzeltme kanıtını anlamaya çalışmak
Bu kanıt, tümevarımın kanıtıdır ve aşağıdaki gibi devam eder: P (n) "Quicksort, n uzunluğundaki her girdi dizisini doğru bir şekilde sıralar." Temel durum: 1 uzunluktaki her giriş dizisi zaten sıralanmıştır (P (1) tutar) Endüktif adım: n => 2'yi düzeltin. N uzunluğunda bir girdi dizisini düzeltin. Gösterilmesi gereken: P (k) tüm …



3
İplik güvenliğini kanıtlamak mümkün mü?
Bu değişkenleri değiştiren değişkenlerden ve talimatlardan oluşan bir program ve bir senkronizasyon ilkesi (bir monitör, muteks, java senkronize veya C # kilidi) göz önüne alındığında, böyle bir programın iş parçacığı açısından güvenli olduğunu kanıtlamak mümkün müdür? İplik güvenliği veya yarış koşulları gibi şeyleri tanımlamak için resmi bir model bile var …

6
Program doğrulama teknikleri Heartbleed türünün hatalarının oluşmasını engelleyebilir mi?
Heartbleed böceğiyle ilgili olarak, Bruce Schneier 15 Nisan Kripto Gramında şöyle yazdı: “Felaket” doğru kelimedir. 1 ila 10 ölçeğinde, bu 11'dir. ' Birkaç yıl önce, belirli bir işletim sisteminin çekirdeğinin modern bir program doğrulama sistemi ile titizlikle doğrulandığını okudum. Bu nedenle, Heartbleed türünün hatalarının bugün program doğrulama tekniklerinin uygulanmasıyla meydana …
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.