Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 数学-可导出的两个数中的大数_Math - Fatal编程技术网

Math 数学-可导出的两个数中的大数

Math 数学-可导出的两个数中的大数,math,Math,假设我有一些数字,比如 5,10,7,8,9,6,2,4,8,5,3,9,78,5,6 我需要将它发送到另一台计算机,但尽可能减少字节数。我知道有什么方法可以做到这一点,我只是忘记了它叫什么以及它是如何工作的,但通常用这些数字做一些数学运算,得到一个大的数字,从这个数字中,我可以导出数据,从这个数字中得到这个数字。提前谢谢 编辑 好的,我需要用UDP发送这个文本,但我需要尽可能少的比特数。我正在发送一些选项,比如firstcolor secondcolor,假设我有15种颜色。每种颜色都只是数

假设我有一些数字,比如

5,10,7,8,9,6,2,4,8,5,3,9,78,5,6
我需要将它发送到另一台计算机,但尽可能减少字节数。我知道有什么方法可以做到这一点,我只是忘记了它叫什么以及它是如何工作的,但通常用这些数字做一些数学运算,得到一个大的数字,从这个数字中,我可以导出数据,从这个数字中得到这个数字。提前谢谢

编辑
好的,我需要用UDP发送这个文本,但我需要尽可能少的比特数。我正在发送一些选项,比如firstcolor secondcolor,假设我有15种颜色。每种颜色都只是数字,从1到199,但也许有更好的方法发送这些数据?谢谢。

没有人能说哪种压缩方案最适合您。我们没有关于数字的任何信息。但作为第一次尝试,您可以将它们写入一个文件中,并对其使用
gzip
压缩。或
bzip2
,或
7zip

只有当所有这些都不起作用时,你才应该考虑自己做压缩

您也没有告诉我们您的操作系统(源计算机、目标计算机)以及从何处获取数据

[更新,基于问题中的编辑:]因此基本上您希望发送一些介于1到199之间的数字。这与单个
字节所能容纳的内容非常接近

如果每个数字使用8位是可以的(这意味着每个数字浪费0.4位),这很简单,但很大程度上取决于编程语言。下面是它在Java语法中的样子:

ByteBuffer buf = new ByteBuffer();
buf.add(1);
buf.add(199);
buf.add(78);
buf.add(7);

udpSocket.send(buf.toArray());
获取一个压缩库(例如,像
zlib
)并输入数字(例如,作为整数数组)。这是压缩你的数据。同一个库应该允许您反向处理,并在另一端解压数据,以恢复您的值


如果你想提高你的算法知识,并且你的要求简单且不重要,我建议你尝试编写你自己的压缩/解压缩代码。如果没有,从书架上拿一些代码-周围有很多很好的库。

你要找的是压缩这个词吗?嗯,是的,哈哈哈哈大笑:D,但我仍然不知道最好的方法是什么..是的,但是在服务器端,我怎么知道1199、78和7是不同的数字呢?在服务器端,您还必须将数据包解释为
ByteBuffer
。我认为这是显而易见的,但由于你们的问题很不清楚,我很难回答。顺便说一下,你应该把所有重要的信息都放在这个问题上。(编程语言、您的知识等)嗯。。我用C++作为客户端的服务器和Obj-C。你能给我举一个使用这个zlib的例子吗?你认为这对我来说也是最好的解决办法吗?zlib是一个C库,因此在客户端和服务器端都可以使用。官方网站是,但我恐怕没有任何具体的例子提供(打赌谷歌会抛出很多)。至于它是否是最好的解决方案,这取决于许多因素,其中性能是一个关键因素。zlib速度非常快,您可以在内存中进行压缩,避免写入/读取文件的IO成本。当然,压缩/解压缩不是免费的。