- 主题:如何用最少的比特传递更多的信息?
不行,网络中的用户数远超过160个
- 来自 水木社区APP v3.5.4
【 在 Thinkingpat 的大作中提到: 】
一次广播最多可呼叫160个用户
160比特对应160个用户,用户收到广播包后查看自己对应的比特位,为1则知道自己被呼叫了
- 来自 水木社区APP v3.5.4
--
FROM 117.143.51.*
请推荐一些压缩算法
- 来自 水木社区APP v3.5.4
【 在 solrex 的大作中提到: 】
16比特不就int16吗?整数压缩算法很多,选一个合适的就好。
- 来自 水木社区APP v3.5.4
--
FROM 117.143.51.*
没看懂,愿闻其详,假设用户1000个的话。
- 来自 水木社区APP v3.5.4
【 在 pcong 的大作中提到: 】
用户不到65536个的话,用剩余ID建立组播
- 来自 水木社区APP v3.5.4
--
FROM 117.143.51.*
一个id是2bytes,如果用户数真接近2^16那就是没办法更多了
如果远少于2^16,给id加个索引就好了
【 在 franksychen 的大作中提到: 】
: 问题如下:
: A要通过广播呼叫网络中的用户,广播包中有160比特用于携带欲呼叫的用户ID,每个用户ID占用16比特,因此常规方法下,一次只能同时呼叫10个用户。那么,有什么方法,可以在只用160比特、每个ID占16比特的前提下,一次呼叫尽可能多的用户?
: PS:ID是无规律的,但呼叫方和被呼叫方都知道ID。
: ...................
--
FROM 223.72.82.*
你给的信息太少,一共20个字节啥压缩算法都不好用。如果能预知用户数目的话就用更短的编码,否则就不要限制包的大小。
--
FROM 101.88.154.*
最简单的差值编码+bitpack,对ID排好序,最小的ID放原始值,其它的id放前后两个数的差值,用4个bit存最大差值的位宽,差值全部用这个位宽存储。
【 在 franksychen 的大作中提到: 】
: 请推荐一些压缩算法
:
: \- 来自 水木社区APP v3.5.4
: --
发自「今日水木 on V2134A」
--
FROM 114.254.1.*
可以采用订阅方式,每个用户端可以自由登记订阅一个或多个广播地址
这样只需要往某个地址发广播呼叫就可以呼叫到所有的订阅用户
【 在 franksychen 的大作中提到: 】
: 问题如下:
: A要通过广播呼叫网络中的用户,广播包中有160比特用于携带欲呼叫的用户ID,每个用户ID占用16比特,因此常规方法下,一次只能同时呼叫10个用户。那么,有什么方法,可以在只用160比特、每个ID占16比特的前提下,一次呼叫尽可能多的用户?
: PS:ID是无规律的,但呼叫方和被呼叫方都知道ID。
: ...................
--来自微微水木3.5.12
--
FROM 222.129.134.*