| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // package freq_pair -- наиболее частотная пара
- package freq_pair
- import (
- "fmt"
- )
- // ЧастПара -- самая частотная пара
- type ЧастотПара struct {
- Val1_, Val2_ int // Самые частотные значения
- Key0_, Key1_ uint32 // Самый частотные ключи
- Combo_ string // Самая выгодная комбинация для сжатия(11, 12, 21, 22)
- }
- // SetVal1 -- устанавливает значения частотных пар
- func (сам *ЧастотПара) SetVal1(key uint32, val int) {
- if val > сам.Val2_ {
- сам.Val1_ = сам.Val2_
- сам.Key0_ = сам.Key1_
- сам.Val2_ = val
- сам.Key1_ = key
- return
- }
- сам.Val1_ = val
- сам.Key0_ = key
- }
- // String -- строковое представление частотных пар
- func (сам *ЧастотПара) String() string {
- str := fmt.Sprintf("{key1:%v val1:%v; key2:%v val2:%v; combo:%q}",
- сам.Key0_,
- сам.Val1_,
- сам.Key1_,
- сам.Val2_,
- сам.Combo_,
- )
- return str
- }
- // SetKeys -- устанавливает ключи замен
- func (сам *ЧастотПара) SetKeys(key0, key1 uint32) {
- сам.Key0_ = key0
- сам.Key1_ = key1
- }
|