| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- // package freq_pair -- наиболее частотная пара
- package freq_pair
- import (
- "fmt"
- )
- // ЧастПара -- самая частотная пара
- type ЧастотПара struct {
- val1, val2 int // Самые частотные значения
- key0, key1 uint32 // Самый частотные ключи
- strCombo 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,
- сам.strCombo,
- )
- return str
- }
- // SetKeys -- устанавливает ключи замен
- func (сам *ЧастотПара) SetKeys(key0, key1 uint32) {
- сам.key0 = key0
- сам.key1 = key1
- }
- // Key0 -- самый частотный ключ 0
- func (сам *ЧастотПара) Key0() uint32 {
- return сам.key0
- }
- // Key1 -- самый частотный ключ 1
- func (сам *ЧастотПара) Key1() uint32 {
- return сам.key1
- }
|