Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
5 / 5 / 1
Регистрация: 30.07.2011
Сообщений: 257

Теряется точность

23.08.2011, 20:03. Показов 2377. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Видимо в этой проге теряетмя точность. Не проходит только 1 тест.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 #include <iostream>
#include <iomanip>
using namespace std;
 
int main()
{
 double n,a,b;
 int k,i,j,t;
 scanf("%d",&t);
 for (i=0; i<t; i++)
  {
   scanf("%lf%d",&n,&k);
   a=0.0;
   for (j=1; j<=k-1; j++) { scanf("%lf",&b); a+=b; }
   cout << fixed << setprecision(5) << 1-a/n << endl;
  }
 return 0;
}
Помогите что-то сделать
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.08.2011, 20:03
Ответы с готовыми решениями:

Куда теряется точность?
Для примера, есть формула (a+b)3 - a3. В расчетах с хранением промежуточных результатов и без него получаются разные ответы. #include...

Теряется точность в сравнении с exel
Точность измерений на С++ меньше чем на exel. Нужно это исправить. Код проги #include &lt;iostream&gt; #include &lt;cmath&gt; ...

Теряется точность при вычислении с double
Доброго времени суток. В процессе решения кубического уравнения, у меня теряется точность переменной типа double. Пробовал использовать...

10
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
23.08.2011, 20:07
Телепатируй уже, что надо-то? Канал для получения задания открыт.
0
5 / 5 / 1
Регистрация: 30.07.2011
Сообщений: 257
23.08.2011, 20:13  [ТС]
В урне находится n шаров, каждый из которых имеет один из k цветов, причём количество шаров каждого цвета, как и сам цвет, известно и написано на отдельной табличке. Дима, начавший изучать теорию вероятности, решил подшутить над своими товарищами и пользуясь случаем, незаметно от остальных заменил все шары какого-то непонравившегося ему цвета шарами совсем других цветов, каждый из которых в надписях на табличках отсутствует, а саму табличку спрятал.
Теперь каждому, кто заходит в аудиторию, он задаёт один и тот же вопрос:
- А скажите-ка мне, с какой вероятностью Вы достанете из урны шар с цветом, не указанным на табличках?
Ваше задание состоит в том, чтобы написать программу, быстро отвечающую на Димины вопросы.

Входные данные

В первой строке задано количество товарищей m (1 ≤ m ≤ 1000), которым Дима задал свой вопрос. Каждая из последующих 2m строк имеет следующую структуру: в первой из них задано два числа n и k (1 ≤ k ≤ n ≤ 10000), а во второй k-1 число, разделённое пробелами - количество шаров очередного известного цвета, написанное на табличке.
Выходные данные
В каждой из m строк должен содержаться ответ к Диминой задачке, выведенный с точностью 5 знаков после запятой.
Пример входных данных
2
10 3
5 3
10 3
3 2
Пример выходных данных
0.20000
0.50000
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
23.08.2011, 20:23
Попробуй (n-a)/n
Если не поможет, попробуй ещё вывод через printf.
0
5 / 5 / 1
Регистрация: 30.07.2011
Сообщений: 257
23.08.2011, 20:23  [ТС]
Цитата Сообщение от grizlik78 Посмотреть сообщение
Попробуй (n-a)/n
Если не поможет, попробуй ещё вывод через printf.
Пробовал, фигня
Причём ещё TL на двух тестах появился...
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
23.08.2011, 20:45
Тайм-лимит не может быть связан ни с тем, ни с другим
Хотя непонятно, зачем вводить целые числа как double, это действительно может оказаться медленнее ввода int.
А по поводу точности у меня только одно предположение — округление последнего знака не нужно.
тогда могло бы помочь 1.0e-5*floor((n-a)/n*1.0e5)
0
5 / 5 / 1
Регистрация: 30.07.2011
Сообщений: 257
23.08.2011, 21:00  [ТС]
нет(((
0
 Аватар для zuq
95 / 95 / 5
Регистрация: 10.04.2011
Сообщений: 256
23.08.2011, 21:03
А где вы эту задачу сдаете?
0
5 / 5 / 1
Регистрация: 30.07.2011
Сообщений: 257
23.08.2011, 21:09  [ТС]
онлайн контесты
0
 Аватар для zuq
95 / 95 / 5
Регистрация: 10.04.2011
Сообщений: 256
23.08.2011, 21:10
Это понятно. Можете дать ссылку на саму задачу?
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
24.08.2011, 15:23
Проблема видна в этой теме: Цветные шары
В принципе, я считаю подобные задачи на "плавучку" не совсем корректными.

Добавлено через 16 часов 17 минут
Чтобы было понятно, откуда вообще может взяться проблема, можно посмотреть на вывод вот такой программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <iomanip>
 
using namespace std;
 
int main()
{
    for (int i = 1; i < 8; i += 2)
    {
        double v = i*875 / 8000.0;
        cout << fixed << setprecision(5) << v << endl;
        cout << fixed << setprecision(7) << v << endl << endl;
    }
    return 0;
}
Вывод:
Code
1
2
3
4
5
6
7
8
9
10
11
12
$ ./a.out      
0.10938
0.1093750
 
0.32812
0.3281250
 
0.54688
0.5468750
 
0.76562
0.7656250
Проблема самая обычная, неточное представление чисел. То есть число 0.3281250 на самом деле хранится как 0.3281249999... и округляется к 0.32812, хотя точное значение следовало бы округлить к 0.32813.
В общем виде решение проблемы с неточным представлением мне не известно, хотя в данном случае в качестве "объезда" можно было бы прибавлять маленькое число перед выводом, скажем 1.0e-8, или даже std::numeric_limits<double>::epsilon()
Но для общего случая просто используются целочисленные вычисления, где можно получить представление рациональной дроби с любой требуемой точностью.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.08.2011, 15:23
Помогаю со студенческими работами здесь

Теряется значение в переменной
Всем привет...думаю всем не важно что надо сдавать мне и так далее :D В общем прошу помощи...есть функция, возвращающая номер столбца с...

значение массива теряется
Добрый день. Объясните пожалуйста почему значение массива теряется. И как сделать что бы он все таки вывел правильное значение? ...

String to float - теряется разрядность
Врем привет пытаюсь преобразовать текстовую переменную в float и прибавить другую float. делаю так: std::string test =...

Теряется указатель на переменые в классе
образован двусвязный список. Данные находятся в трех перменныех, посел поступления данных в функцию sAge указатели на перменные типа char...

Теряется строка при передаче в функцию
Привет Замучался копать уже. Теряется строка при передаче её в функцию. Код такой: char* Read() { char str = &quot;1 2 3...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru