2016-02-17 11 views
0

Я новичок в Z нотации,Возврат высокий или самый низкий значение Z нотации, формальный метод

Допустим, у меня есть функция F определяется как X | -> Y, , где Х представляет собой строку и Y есть число.

Как я могу получить наивысшее значение Y в этой функции? Существует ли «цикл» в формальном методе, поэтому я могу решить его с помощью цикла?

Я знаю, что существует рекурсия в нотации Z, но на основании предоставленного материала я нашел, что он применяется в мультимножестве или сумке, может ли он применяться в функции?

Будет оценено любое дополнительное ссылочное приложение 'loop' или recursion application. Извините за мой английский.

ответ

1

Вы можете использовать предопределенную функцию max, которая принимает набор целых чисел в качестве входных данных и возвращает максимальное число. Входные значения здесь диапазон (совокупность всех значений) функции:

max(ran(f)) 

Пожалуйста, обратите внимание, что максимум не определен для пустых множеств.

Что касается вашего вопроса о рекурсии или циклах: вы можете фактически определить функцию рекурсивно, но я думаю, что ваш вопрос больше нацелен на то, чтобы вычислить что-то. Это нелегко выразить в Z, и это ИМО - хорошая вещь, потому что она используется для спецификаций, и это не язык программирования. Даже если не будет max или ran функции, можно еще указать номер m вы ищете по:

\exists s:String @ (s,m):f /\ 
    \forall s2:String, i2:Z @ (s2,i2):f ==> i2 <= m 

m этого значение f, принадлежащий к s и все другим значениям i2 из f меньше или равно ")

После привыкания к стилю она обычно далеко лучше понять, чем любой язык программирования (кроме ваших пытаются описать сам, а не его ожидаемый результат алгоритм). #

Просто для справки: Пример рекурсивного определения (назовем его rmax) для максимального будет состоять из базового случая:

\forall e:Z @ rmax({e}) = e 

и рекурсивного случая:

\forall e:Z; S:\pow(Z) @ 
    S \noteq {} \land 
    rmax({e} \cup S) = \IF e > rmax(S) \THEN e \ELSE rmax(S) 

Но учтите, что это все еще не «правило вычисления» rmax, потому что e во втором правиле может быть произвольным элементом S. В более сложных сценариях может быть даже не очевидно, что определенное отношение является функцией вообще, потому что в зависимости от выбранных элементов могут быть вычислены разные результаты.