Vivatgm
Янв. 26, 2013 13:35:21
вот пример скрипта, который был написан для подбора цены товара к определенной сумме(цена может быть до 0,01 руб, количество товаров целое)
z=125148
x=24.00
while x<=26:
print(x, ‘\t’, z/x)
x+=0.01
результат ответа таков:
24.0 5214.5
24.01 5212.328196584756
24.020000000000003 5210.158201498751
24.030000000000005 5207.990012484393
24.040000000000006 5205.823627287852
24.050000000000008 5203.659043659042
24.06000000000001 5201.496259351619
24.07000000000001 5199.335272122972
24.080000000000013 5197.176079734217
24.090000000000014 5195.0186799501835
…
почему далее прибавляется не 0,01, а появляется куча нулей с какими то цифрами?
Vivatgm
Янв. 26, 2013 14:07:21
Singularity
знаю что купили товар на сумму z знаю что цена его в пределах от 24 рублей до 26 рублей. надо узнать сколько товара купили(то есть получить целое число, так как количество товара не может быть 5203,05984 шт)
Vivatgm
Янв. 26, 2013 14:08:50
Lexander
http://democoder.ru/article/14
получается решать подобные задачи возможно только переведя сначала значения в целые числа, а потом переводить к их истинным значениям и выводить на экран?
4kpt
Янв. 26, 2013 14:33:13
Рекомендую посмотреть модуль decimal…
doza_and
Янв. 26, 2013 17:52:04
Тут скорее надо смотреть не decimal а про Диофантовы уравнения.
http://www.math.ru/lib/book/plm/v08.djvu
Vivatgm
Янв. 27, 2013 10:17:58
решил способом приведения опирируемых значений в целые числа. универсальным скрипт не делал
z=30378
x=24
z,x=z*100,x*100
while x<=2600:
print(x/100, ‘\t’, z/x)
x+=1
Vivatgm
Янв. 28, 2013 14:56:20
z=125148
x=24.00
while x<=26:
print(round(x,2),'\t', z/round(x,2))
x+=0.01
а как такой вариант решения вопроса? подсказали. верен ли он?