Форум программистов, компьютерный форум CyberForum.ru

Упаковка массива данных float с заданной точностью - C++

Восстановить пароль Регистрация
 
Neiffer
Сообщений: n/a
19.12.2012, 10:25     Упаковка массива данных float с заданной точностью #1
Есть интересная задачка, если она не подходит для начинающих пересоздам тему у экспертов. Задача вроде бы типовая на вид, но ничего подобного так и не удалось найти(возможно не там искал).

Вкратце, задан массив float и требуемая точность. Надо рассчитать, сколько бит нужно для этой точности и сделать последовательность, где каждый float упакован в это кол-во бит.

Более формально:

Задан массив исходных данных F в виде чисел в формате float. Предполагается, что числа не совсем случайные, а ограничены рамками некого диапазона -M; +M
Задана требуемая точность P, составляющая примерно 1% - 0.01% от значения M
На выходе требуется получить массив целых чисел D, размером В бит каждое, по которому можно восстановить исходные числа с точностью P, умножив каждое число на некоторый коэффициент C. Иначе говоря, восстановленное значение f[i] = d[i] * C где f[i] отличается от исходного F[i] не более, чем на P.
Требуется вычислить минимальное достаточное количество бит B и коэффициент C.

В результате нужно написать программу, которая записывает в файл кол-во бит B и коэффициент С, а затем массив D.

D должен быть представлен в виде последовательности бит, по В бит на число.
Предполагается, что исходные данные таковы, что B < 32. Для C можно использовать тип double.
Так же надо написать программу, которая декодирует этот файл обратно в массив float.


Если есть что-либо подобное уже решенное и я проглядел, киньте ссылку, пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2012, 10:25     Упаковка массива данных float с заданной точностью
Посмотрите здесь:

Преобразование во float с точностью C++
Вычисление с заданной точностью C++
C++ Вычислить с заданной точностью
C++ Вычислить с заданной точностью
C++ Вычислить с заданной точностью
опять ошибка.на этот раз cannot convert `float (*)(float)' to `float' in argument passing C++
Вычисления с заданной точностью C++
Вывод с заданной точностью C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
19.12.2012, 10:36
  #2

Не по теме:

Цитата Сообщение от Neiffer Посмотреть сообщение
пересоздам тему у экспертов
В разделе C++ для экспертов? Попробуйте

Neiffer
Сообщений: n/a
19.12.2012, 11:03     Упаковка массива данных float с заданной точностью #3
Цитата Сообщение от Croessmah Посмотреть сообщение
Попробуйте
Спасибо, попробую, еще бы доступ туда получить.
Yandex
Объявления
19.12.2012, 11:03     Упаковка массива данных float с заданной точностью
Ответ Создать тему
Опции темы

Текущее время: 17:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru