如何实现一元编码?

时间:2010-05-29 20:34:54

标签: algorithm

我对如何实施unary encoding有疑问。例如:我们怎样才能将 n (非负)与 n (严格为正)区别开来?我不明白。请帮帮我。

我已经改变并编写了代码。

public class unary {
    public static void main (String[] args) {
        int n = 10;
        int i = 0;
        String t = "";
        while (i<n) {
            t += "1";
            i++;
        }
        t += "0";
        System.out.println(n);
        System.out.println("unary representation:");
        System.out.println(t);
    }
}

结果:

10
unary representation:
11111111110

这样吗?

1 个答案:

答案 0 :(得分:4)

非负自然数包括0。 严格的正数自然数不会。 你不需要将非负面与严格正面区分开来,这完全取决于定义。

一元字符串0表示第一个自然数,如果域为非负数,则为0;如果域为严格正数,则为1。

数字10表示为1111111110,同时处理严格正数或11111111110处理非负数。