Вопросы по теме 'loop-invariant'
Доказательство инварианта цикла
Я столкнулся с проблемой, связанной с пост-условием и частичной правильностью этого фрагмента кода.
{ m = A ≥ 0 }
x:=0; odd:=1; sum:=1;
while sum<=m do
x:=x+1; odd:=odd+2; sum:=sum+odd
end while
{ Postcondition }
Я не ищу ответа,...
907 просмотров
schedule
31.01.2023
Когда использовать low ‹ high или low + 1 ‹ high для инварианта цикла
Я прочитал несколько статей, включая главу Джона Бентли о бинарном поиске. Это то, что я понимаю о ПРАВИЛЬНОЙ логике бинарного поиска, и она работает в простых тестах, которые я сделал:
binarysearch (arr, low, high, k)
1. while (low <...
1025 просмотров
schedule
16.05.2022
Инвариант цикла для этого кода?
Я читал об инвариантах циклов, но немного запутался. Допустим, у меня есть этот код, каким должен быть инвариант? Что-то вроде А+В=Х?
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long A =...
74 просмотров
schedule
07.05.2022
Какова связь между инвариантом цикла и самым слабым предусловием
Учитывая инвариант цикла, Википедия перечисляет хороший способ создать самые слабые предварительные условия для цикла (из http://en.wikipedia.org/wiki/Predicate_transformer_semantics ):
wp(while E inv I do S, R) =
I \wedge
\forall y. ((E...
990 просмотров
schedule
16.07.2022
Метод вставки Dafny, постусловие может не выполняться на этом пути возврата
У меня есть массив "line", в котором содержится строка длины "l", и массив "nl", в котором содержится строка длины "p". Примечание: «l» и «p» не обязательно должны быть длиной каждого соответствующего массива. Параметр «at» будет позицией, в которой...
1389 просмотров
schedule
21.05.2023
(Dafny) Добавление элементов массива в другой - инвариант цикла
У меня есть функция sum , которая принимает два массива a и b в качестве входных данных и изменяет b таким образом, чтобы b[i] = a[0] + a[1] + ... + a[i] . Я написал эту функцию и хочу проверить ее с Дафни. Однако Дафни говорит мне, что мой...
971 просмотров
schedule
31.07.2022
Как найти циклический инвариант этой программы?
Вероятно, это очень простое решение, и я просто тупой, но я не могу найти инвариант для этого цикла while. Для доказательства (a+b) ‹= 2x можно взять (x+y>a+b), поэтому, вероятно, это первая часть инварианта, но для второй части, чтобы доказать 2x‹=...
117 просмотров
schedule
17.01.2023
Инвариант цикла Дафни может не выполняться
Это простая задача разделения 0 и 1 в массиве. Я не могу понять, почему инвариант цикла не выполняется.
method rearrange(arr: array<int>, N: int) returns (front: int)
requires N == arr.Length
requires forall i :: 0 <= i <...
217 просмотров
schedule
21.08.2023
Использование инварианта для определения граничных условий в бинарном поиске
Я пытаюсь решить Расстановку монет на LeetCode.com:
Всего у вас есть n монет, которые вы хотите сформировать в виде лестницы, где в каждом k-м ряду должно быть ровно k монет. По заданному n найдите общее количество полных рядов лестницы,...
47 просмотров
schedule
24.07.2023
Использование инварианта для определения граничных условий в типичной задаче бинарного поиска
Я пытаюсь решить типичный вопрос бинарного поиска на LeetCode.com :
Имея отсортированный (в порядке возрастания) целочисленный массив nums из n элементов и целевое значение, напишите функцию для поиска цели в nums. Если цель существует, вернуть...
66 просмотров
schedule
13.02.2023