2014 dxdy logo

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

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


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


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



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


28/01/15
670
Вопрос такой: если изначально есть некоторое целое число, которое надо разделить на части согласно некоторому коэффициенту и при этом получаются бесконечные периодические дроби, как сходу определить, до какого знака надо округлить получающиеся дроби, чтобы в сумме они дали целое число?
Вот 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
12065
Казань
Solaris86 в сообщении #1271062 писал(а):
Каждое из этих чисел надо разбить на 3 части согласно коэффициентам k.

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

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


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

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


28/01/15
670
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
12065
Казань
Спасибо за пояснения, но конкретный смысл величин математику не важен. Каждое слагаемое имеет вид $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
8562
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
670
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
8562
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
670
Sonic86 в сообщении #1271320 писал(а):
У него бесконечно много рациональных решений, но нет ни одного решения в округлениях.

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

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


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

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


28/01/15
670
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
8562
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 ] 

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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