- 主题:怎么实现一个和bitset有类似功能的 tritset?
每一位可以取 0, 1, 2 三个值, 谢谢!
--
修改:fangniuwawa FROM 58.206.160.*
FROM 58.206.160.*
这是要用3进制?
【 在 fangniuwawa (兰州放牛) 的大作中提到: 】
: 每一位可以取 0, 1, 2 三个值, 谢谢!
--
FROM 115.34.248.*
对,怎么高效实现呢? 谢谢!
【 在 iconquer 的大作中提到: 】
: 这是要用3进制?
:
--
FROM 58.206.160.*
这需求很少见啊,有没有具体要实现的功能?
【 在 fangniuwawa (兰州放牛) 的大作中提到: 】
: 对,怎么高效实现呢? 谢谢!
--
FROM 115.34.248.*
我觉得你用双二进制=四进制set比较合适
【 在 fangniuwawa (兰州放牛) 的大作中提到: 】
: 每一位可以取 0, 1, 2 三个值, 谢谢!
--
FROM 101.87.110.*
是一个办法,但是我要统计这个set里面1的个数就不那么容易
【 在 HeliumLeoBob 的大作中提到: 】
: 我觉得你用双二进制=四进制set比较合适
:
--
FROM 58.206.160.*
包装一下吧?
【 在 fangniuwawa (兰州放牛) 的大作中提到: 】
: 是一个办法,但是我要统计这个set里面1的个数就不那么容易
--
FROM 101.87.110.*
比如: 电子自旋1/2, z分量可以为1/2, -1/2, 有100个电子,就可以用长度为100的bitset记录这些电子的自旋。 如果是自旋为1的粒子,z分量 -1, 0, 1, 记录这个粒子的自旋用3进制的set就很方便.
【 在 iconquer 的大作中提到: 】
: 这需求很少见啊,有没有具体要实现的功能?
:
--
FROM 58.206.160.*
std::count 不也行吗
还是你要求特别省内存
【 在 fangniuwawa () 的大作中提到: 】
: 比如: 电子自旋1/2, z分量可以为1/2, -1/2, 有100个电子,就可以用长度为100的bitset记录这些电子的自旋。 如果是自旋为1的粒子,z分量 -1, 0, 1, 记录这个粒子的自旋用3进制的set就很方便.
:
: 【 在 iconquer 的大作中提到: 】
--
FROM 138.19.103.*
最高效的是用一个字节(8个2进制数,256个状态)表示5位三进制数(243个状态),全部状态穷举做成表,用的时候查表就是了。
点二进制数里1的位数也是用查表法的而不是一个个去点。
--
FROM 101.88.160.*