2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Округление чисел.
Сообщение02.12.2017, 15:54 


28/01/15
662
Вопрос такой: если изначально есть некоторое целое число, которое надо разделить на части согласно некоторому коэффициенту и при этом получаются бесконечные периодические дроби, как сходу определить, до какого знака надо округлить получающиеся дроби, чтобы в сумме они дали целое число?
Вот 3 примера, взятых из задачи по экономике (коэффициент k не округляем, округляем только сами числа a, b и c).
Есть 3 числа: 59500, 30000 и 29500. Каждое из этих чисел надо разбить на 3 части согласно коэффициентам k.
Число $59500$
$59500 = A_1 + B_1 + C_1 = a_1 \cdot 150 + b_1 \cdot 200 + c_1 \cdot 300$ (1)
$k_1 = \frac {59500}{28500 + 37500 + 72000} = 0,43(1159420289855072463768)$
$a_1 = k_1 \cdot 190 = 81.9202(8985507246376811594202)$
$b_1 = k_1 \cdot 187.5 = 80.8423(9130434782608695652173)$
$c_1 = k_1 \cdot 240 = 103.(4782608695652173913043)$
Округляем числа a, b и с и добиваемся того, чтобы выполнялось равенство (1):
Округляем до целого: $82 \cdot 150 + 81 \cdot 200 + 103 \cdot 300 = 59400 \not = 59500$
Округляем до десятых: $81.9 \cdot 150 + 80.8 \cdot 200 + 103.5 \cdot 300 = 59495 \not = 59500$
Округляем до сотых: $81.92 \cdot 150 + 80.84 \cdot 200 + 103.48 \cdot 300 = 59500$
Округляем до тысячных: $81.920 \cdot 150 + 80.842 \cdot 200 + 103.478 \cdot 300 = 59499.8 \not = 59500$
Округляем до десятитысячных: $81.9203 \cdot 150 + 80.8424 \cdot 200 + 103.4783 \cdot 300 = 59500.015 \not = 59500$
Число $30000$
$30000 = A_2 + B_2 + C_2 = a_2 \cdot 150 + b_2 \cdot 200 + c_2 \cdot 300$ (2)
$k_2 = \frac {30000}{375 + 600 + 1050} = 14,(814)$
$a_2 = k_2 \cdot 2.5 = 37.(037)$
$b_2 = k_2 \cdot 3 = 44.(4)$
$c_2 = k_2 \cdot 3.5 = 51.(851)$
Округляем числа a, b и с и добиваемся того, чтобы выполнялось равенство (2):
Округляем до целого: $37 \cdot 150 + 44 \cdot 200 + 52 \cdot 300 = 29950 \not = 30000$
Округляем до десятых: $37.0 \cdot 150 + 44.4 \cdot 200 + 51.9 \cdot 300 = 30000$
Округляем до сотых: $37.04 \cdot 150 + 44.44 \cdot 200 + 51.85 \cdot 300 = 29999 \not = 30000$
Округляем до тысячных: 37.037 \cdot 150 + 44.444 \cdot 200 + 51.852 \cdot 300 = 29999.95 \not= 30000$
Округляем до десятитысячных: $37.0370 \cdot 150 + 44.4444 \cdot 200 + 51.8519 \cdot 300 = 30000$
Число $29500$
$29500 = A_3 + B_3 + C_3 = a_3 \cdot 150 + b_3 \cdot 200 + c_3 \cdot 300$ (3)
$k_3 = \frac {29500}{28500 + 37500 + 72000} = 0,2137(6811594202898550724637)$
$a_3 = k_3 \cdot 190 = 40.6159(4202898550724637681159)$
$b_3 = k_3 \cdot 187.5 = 40.0815(2173913043478260869565)$
$c_3 = k_3 \cdot 240 = 51.(3043478260869565217391)$
Округляем числа a, b и с и добиваемся того, чтобы выполнялось равенство (3):
Округляем до целого: $41 \cdot 150 + 40 \cdot 200 + 51 \cdot 300 = 29450 \not = 29500$
Округляем до десятых: $40.6 \cdot 150 + 40.1 \cdot 200 + 51.3 \cdot 300 = 29500$
Округляем до сотых: $40.62 \cdot 150 + 40.08 \cdot 200 + 51.30 \cdot 300 = 29499 \not = 29500$
Округляем до тысячных: $40.616 \cdot 150 + 40.082 \cdot 200 + 51.304 \cdot 300 = 29500$
Округляем до десятитысячных: $40.6159 \cdot 150 + 40.0815 \cdot 200 + 51.3043 \cdot 300 = 29499.975 \not = 29500$

Еще раз напомню вопрос: как сразу найти нужное округление, чтобы получить в итоге суммирования исходное целое число?
Я понимаю, что уравнение вида $ax + by + cz + d = 0$ имеет бесконечное множество решений, поэтому и округлений, дающих целое число в итоге суммирования, будет тоже бесконечно много, но, может, есть какие-то хитрости, чтобы сходу найти округление, содержащее наименьшее число знаков после запятой.
Спасибо!

 Профиль  
                  
 
 Re: Округление чисел.
Сообщение02.12.2017, 17:22 
Заслуженный участник
Аватара пользователя


18/01/13
12044
Казань
Solaris86 в сообщении #1271062 писал(а):
Каждое из этих чисел надо разбить на 3 части согласно коэффициентам k.

Непонятно. Чему в вашем примере соответствуют "коэффициенты $k$"? И откуда взялся такой знаменатель в формуле вычисления $k_1$?

 Профиль  
                  
 
 Re: Округление чисел.
Сообщение02.12.2017, 17:39 
Заслуженный участник


20/08/14
11155
Россия, Москва
Была тут похожая тема, про бухгалтерию, как цены составить чтобы общая сумма сошлась, тоже надо было цены округлять до копеек. Не получилось быстро её найти.

 Профиль  
                  
 
 Re: Округление чисел.
Сообщение02.12.2017, 19:03 


28/01/15
662
provincialka в сообщении #1271100 писал(а):
Непонятно. Чему в вашем примере соответствуют "коэффициенты $k$"? И откуда взялся такой знаменатель в формуле вычисления $k_1$?

Поясню. Есть так называемые постоянные издержки (FC) на производстве, это те самые 3 исходных числа. Задача - распределить эти FC между тремя изделиями (А, В и С).
Постоянные издержки в расчете на одно изделие - это средние постоянные издержки (AFC).
Формула для связи FC и AFC такая:
$FC = AFC_A \cdot Q_A + AFC_B \cdot Q_B + AFC_C \cdot Q_C$, где Q - количество изделий
В примере 1:
$FC = 59500, AFC_A = a_1, Q_A = 150, AFC_B = b_1, Q_B = 200$, $AFC_C = c_1, Q_C = 300$
$59500 = a_1 \cdot 150 + b_1 \cdot 200 + c_1 \cdot 300$
Формула для нахождения AFC:
$AFC_A = E_A \cdot k_1$
$AFC_B = E_B \cdot k_1$
$AFC_C = E_C \cdot k_1$
E - часть зарплаты, приходящаяся за изготовления одного изделия; величина Е известна из условия задачи: $E_A = 190, E_B = 187.5, E_C = 240$
Формула для нахождения k:
$k_1 = \frac {FC}{E_A \cdot Q_A + E_B \cdot Q_B + E_C \cdot Q_C}$
Коэффициент k в моём примере как раз создаёт нужные пропорции между $a_1, b_1 \text{и} c_1$.

 Профиль  
                  
 
 Re: Округление чисел.
Сообщение02.12.2017, 20:03 
Заслуженный участник
Аватара пользователя


18/01/13
12044
Казань
Спасибо за пояснения, но конкретный смысл величин математику не важен. Каждое слагаемое имеет вид $k\cdot E Q$, где $E$ -- множитель, связанный с зарплатой, $Q$ -- множитель, связанный с количеством изделий. Но для решения задачи они не нужны по-отдельности.
Поэтому можно ввести обозначения $a_i=E_i\cdot Q_i$. Число $X$, например, $X=59500$ надо записать в виде $X=b_1+b_2+b_3$, где выполняется примерное равенство $b_i\approx ka_i$.

Возникает вопрос, почему нельзя два числа найти явно, а третье получить вычитанием?

Например, мы ищем $59500=k\cdot 28500 + k\cdot 37500 + k\cdot 72000} $, тогда, конечно, $k=\frac{59500}{138000}\approx 0,431159$. Если вы хотите найти слагаемые с точностью до целых, $k$ вам нужно знать с 6-7 знаками после запятой. Например,
$k=0,431159$, тогда
$k\cdot 28500\approx12 288,0$
$k\cdot 37500\approx 16 168,4$
$k\cdot 72000\approx 31043,4 $
Округляя первые два слагаемых, получаем числа 12 288 и 16168. Тогда третье слагаемое можно получить как $59500-12288-16168=31044$. Погрешность составляет примерно $0,6$, что, конечно, больше $0,5$, но все-таки меньше 1.

Не очень понятно, чего вы хотите добиться, увеличивая число знаков после запятой? Какой смысл имеют тысячные, миллионные доли рубля?

 Профиль  
                  
 
 Re: Округление чисел.
Сообщение02.12.2017, 20:31 
Заслуженный участник


08/04/08
8556
Solaris86 в сообщении #1271062 писал(а):
Вопрос такой: если изначально есть некоторое целое число, которое надо разделить на части согласно некоторому коэффициенту и при этом получаются бесконечные периодические дроби, как сходу определить, до какого знака надо округлить получающиеся дроби, чтобы в сумме они дали целое число?
Очевидно, в общем случае никак.
Надо разделить $10$ на $3$. До какого знака надо округлять слагаемые $\frac{10}{3}$, чтобы после округления в сумме было $10$?

Solaris86 в сообщении #1271062 писал(а):
Я понимаю, что уравнение вида $ax + by + cz + d = 0$ имеет бесконечное множество решений
Может и не иметь. Например, $3x+3y+3z-10=0$.

(Оффтоп)

provincialka в сообщении #1271159 писал(а):
Какой смысл имеют тысячные, миллионные доли рубля?
Вероятно, он работает с программой, которая, как известно, этого не понимает. У нас для таких проблем существуют целые отдельные счета с названием "Доходы от округления".
Или представьте, что имеется долбаный транзитный бухсчет. Транзитный, это значит, что туда сумма приходит частями и потом оттуда сразу уходит другими частями. А в сумме д.б. 0. Причем не просто 0, а самый настоящий нуль. А если там вдруг оказалось $-0.0001$, угадайте, что происходит?

provincialka в сообщении #1271159 писал(а):
Округляя первые два слагаемых, получаем числа 12 288 и 16168. Тогда третье слагаемое можно получить как $59500-12288-16168=31044$.
Я на работе так не делаю, чтобы избежать выделения определенного слагаемого среди других (у меня так надо). Я делаю через функцию распределения. У меня, например, если надо $100$ распределить на $3$ равные месяца, у меня получается $33+34+33$. Плюс функции распределения в том, что не надо знать, что для расчета не надо знать, как считались другие слагаемые.

 Профиль  
                  
 
 Re: Округление чисел.
Сообщение02.12.2017, 20:57 


28/01/15
662
provincialka в сообщении #1271159 писал(а):
Возникает вопрос, почему нельзя два числа найти явно, а третье получить вычитанием?

К сожалению, в задачах все показатели связаны и если применить такой метод, может где-то не получиться точного равенства.

provincialka в сообщении #1271159 писал(а):
Не очень понятно, чего вы хотите добиться, увеличивая число знаков после запятой? Какой смысл имеют тысячные, миллионные доли рубля?

Смысл только в том, что я исследовал, единственное ли округление возможно, оказалось, нет: как видно выше, в двух примерах по 2 варианта округления, дающих целое число.

Sonic86 в сообщении #1271166 писал(а):
Надо разделить $10$ на $3$. До какого знака надо округлять слагаемые $\frac{10}{3}$, чтобы после округления в сумме было $10$?

Хороший пример. Только тут надо округлить одну часть неправильно, либо решения нет...

Sonic86 в сообщении #1271166 писал(а):
Может и не иметь. Например, $3x+3y+3z-10=0$.

Не понял, почему нет решений тут? Вариант: $x = 0, y = 0, z = 10/3$ не подходит?

 Профиль  
                  
 
 Re: Округление чисел.
Сообщение03.12.2017, 09:56 
Заслуженный участник


08/04/08
8556
Solaris86 в сообщении #1271178 писал(а):
Sonic86 в сообщении #1271166 писал(а):
Может и не иметь. Например, $3x+3y+3z-10=0$.

Не понял, почему нет решений тут? Вариант: $x = 0, y = 0, z = 10/3$ не подходит?
Solaris86 в сообщении #1271062 писал(а):
Я понимаю, что уравнение вида $ax + by + cz + d = 0$ имеет бесконечное множество решений, поэтому и округлений, дающих целое число в итоге суммирования, будет тоже бесконечно много
У него бесконечно много рациональных решений, но нет ни одного решения в округлениях.

 Профиль  
                  
 
 Re: Округление чисел.
Сообщение03.12.2017, 23:29 


28/01/15
662
Sonic86 в сообщении #1271320 писал(а):
У него бесконечно много рациональных решений, но нет ни одного решения в округлениях.

А такой вариант $x=0, y=0, z= 3.(3)$ тоже будет считать рациональным решением?

 Профиль  
                  
 
 Re: Округление чисел.
Сообщение05.12.2017, 22:25 
Заслуженный участник


08/04/08
8556
Solaris86 в сообщении #1271693 писал(а):
А такой вариант $x=0, y=0, z= 3.(3)$ тоже будет считать рациональным решением?
Нет конечно

 Профиль  
                  
 
 Re: Округление чисел.
Сообщение06.12.2017, 09:34 


28/01/15
662
Sonic86 в сообщении #1272391 писал(а):
Solaris86 в сообщении #1271693 писал(а):
А такой вариант $x=0, y=0, z= 3.(3)$ тоже будет считать рациональным решением?
Нет конечно

Я запутался... Если $10/3$ - это рациональное число, $10/3 = 3.(3)$, то почему $3.(3)$ не является рациональным числом?

 Профиль  
                  
 
 Re: Округление чисел.
Сообщение06.12.2017, 12:32 
Заслуженный участник


01/06/15
1149
С.-Петербург
Solaris86 в сообщении #1271178 писал(а):
provincialka в сообщении #1271159 писал(а):
Возникает вопрос, почему нельзя два числа найти явно, а третье получить вычитанием?

К сожалению, в задачах все показатели связаны и если применить такой метод, может где-то не получиться точного равенства.
А Вы уверены? Что и где именно может не сойтись при таком методе решения?

Solaris86 в сообщении #1271178 писал(а):
Sonic86 в сообщении #1271166 писал(а):
Надо разделить $10$ на $3$. До какого знака надо округлять слагаемые $\frac{10}{3}$, чтобы после округления в сумме было $10$?
Хороший пример. Только тут надо округлить одну часть неправильно, либо решения нет...
"Неправильное округление" - это в точности предыдущий метод решения. И как видите, в данном примере это единственный метод. Еще раз вопрос: что и где может не сойтись, если поступить таким образом? (Альтернатива-то - вообще отказ от распределения издержек для некоторых конкретных случаев).

 Профиль  
                  
 
 Re: Округление чисел.
Сообщение09.12.2017, 14:14 
Заслуженный участник


08/04/08
8556
Solaris86 в сообщении #1272520 писал(а):
Sonic86 в сообщении #1272391 писал(а):
Solaris86 в сообщении #1271693 писал(а):
А такой вариант $x=0, y=0, z= 3.(3)$ тоже будет считать рациональным решением?
Нет конечно

Я запутался... Если $10/3$ - это рациональное число, $10/3 = 3.(3)$, то почему $3.(3)$ не является рациональным числом?
Ой, сорри, конечно - это рациональное число. Только оно не является числом вида $A\cdot 10^{-m}$, вот и все.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: gris


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group