Я хотел бы иметь математическое выражение, которое описывает набор целых чисел. Этот набор целых чисел должен соответствовать следующему.
Предположим, у меня есть 10 бит. Я хочу сгенерировать все целые числа, которые состоят, например, из битов 0, 1, 2, 3, 8, 9, 10. Так, например, набор должен содержать, например:
- 0, потому что 0 * 2 ^ 0 + 0 * 2 ^ 1 + 0 * 2 ^ 2 + 0 * 2 ^ 3 + 0 * 2 ^ 8 + 0 * 2 ^ 9 + 0 * 2 ^ 10 = 0
- 1, потому что 1 * 2 ^ 0 + 0 * 2 ^ 1 + 0 * 2 ^ 2 + 0 * 2 ^ 3 + 0 * 2 ^ 8 + 0 * 2 ^ 9 + 0 * 2 ^ 10 = 1
- 2, потому что 0 * 2 ^ 0 + 1 * 2 ^ 1 + 0 * 2 ^ 2 + 0 * 2 ^ 3 + 0 * 2 ^ 8 + 0 * 2 ^ 9 + 0 * 2 ^ 10 = 2
- ...
- 259, потому что 1 * 2 ^ 0 + 1 * 2 ^ 1 + 0 * 2 ^ 2 + 0 * 2 ^ 3 + 1 * 2 ^ 8 + 0 * 2 ^ 9 + 0 * 2 ^ 10 = 259
- ...
Таким образом, размер этого набора будет 2 ^ 7 = 128 элементов, потому что у нас есть 7 соответствующих битов.
Математическое выражение должно выглядеть примерно так: {n:Nat | n >= 0 && n ‹ 2^11 && ...(сделать что-нибудь с соответствующими битами)... }
К вашему сведению, мне нужно сгенерировать набор натуральных чисел для языка под названием MCRL2. http://www.mcrl2.org/mcrl2/wiki/index.php/Home а>.