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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти сумму ряда с точностью до члена ряда http://www.cyberforum.ru/cpp-beginners/thread737986.html
Найти сумму ряда с точностью до члена ряда, меньшего 0.0001 для заданного значения и сравнить эту сумму с функцией контроля. Для вычисления последующего значения члена ряда использовать рекуррентную формулу.
C++ Вычислить значение функции (ошибка в условии) Hi! Вычислить значение функции: #include "stdafx.h" #include <iostream> #include <math.h> #include <conio.h> using namespace std; void main() http://www.cyberforum.ru/cpp-beginners/thread737971.html
при переходе в функцию происходит ошибка C++
Программа арифметики длинных чисел... Ошибка возникает, если в меню выбрать "Умножение"... Вооот... #include <iostream> #include <string> using namespace std;
C++ Найти максимальное четное число, стоящее над главной диагональю матрицы
Дана матрица (в первой строке - количество строк и столбцов, в след строке элементы матрицы). Найти максимальное четное число, стоящее над главной диагональю. Если над главной диагональю нет четных чисел, вывести 'Нет' что с этим делать?! Час уже мучаюсь....
C++ Построить таблицу значений функции(Перегрузка функций) http://www.cyberforum.ru/cpp-beginners/thread737956.html
Постройте таблицу значений функции y=f(x) для x∈ с шагом h . Для решения задачи используйте вспомогательную функцию. Программу прокоментировать!
C++ Вычислить произведение P = Хmin*Ymin минимального элемента xmin = min{xi} массива xi и минимального элемента ymin = min{yi} массива yi Вычислить произведение P = Хmin*Ymin минимального элемента xmin = min{xi} массива xi и минимального элемента ymin = min{yi} массива yi, i = 1, 2, 3. подробнее

Показать сообщение отдельно
Neiffer
Сообщений: n/a

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

19.12.2012, 10:25. Просмотров 586. Ответов 2
Метки (Все метки)

Есть интересная задачка, если она не подходит для начинающих пересоздам тему у экспертов. Задача вроде бы типовая на вид, но ничего подобного так и не удалось найти(возможно не там искал).

Вкратце, задан массив 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.


Если есть что-либо подобное уже решенное и я проглядел, киньте ссылку, пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru