Найти - Пользователи
Полная версия: Простая задача
Начало » Python для новичков » Простая задача
1
yyyuuu
Всем привет.
Ребята подскажите, решать за меня не стоит.
Но прошу помощи в другом. Объясните что требуется от меня в задании Я понять толком не могу

Имеется монотонно возрастающая последовательность
вещественных чисел у, рассчитываемых по закону:

y = (x * x + 100) / (x + 200) при 1 ≤ х ≤ 100 (х – целое число).

Напечатать все числа последовательности, меньшие заданного
числа m (0,52 ≤ m ≤ 33,7).
 x = int(input())
z = 1
if x >= 1 and x <= 100:
   while 0.52 <= x and  x >= 33.7:
      z =z + (x*x + 100)/(x + 200)
      print(z, end ="_")
Мой вариант. На сколько правильный мой вариант?
yyyuuu
 m = int(input())
x = 1
z = float(1)
if x >= 1 and x <= 100:
   while z >= 0.52 and z <= 33.7:
      z = z + (x*x + 100)/(x + 200)
      print(z, sep ="_")
      x += 1
просто подскажите Я правильно понял решение?
py.user.next
wolfram. график

  
>>> def f(x):
...     return (x * x + 100) / (x + 200)
... 
>>> m = 5
>>> for x in range(1, 100 + 1):
...     y = f(x)
...     if y < m:
...         print(y)
... 
0.5024875621890548
0.5148514851485149
0.5369458128078818
0.5686274509803921
0.6097560975609756
0.6601941747572816
0.7198067632850241
0.7884615384615384
0.8660287081339713
0.9523809523809523
1.04739336492891
1.150943396226415
1.2629107981220657
1.3831775700934579
1.5116279069767442
1.6481481481481481
1.792626728110599
1.944954128440367
2.105022831050228
2.272727272727273
2.4479638009049776
2.630630630630631
2.820627802690583
3.017857142857143
3.2222222222222223
3.433628318584071
3.6519823788546257
3.8771929824561404
4.109170305676856
4.3478260869565215
4.593073593073593
4.844827586206897
>>>
Rodegast
Да что там решать! Сначала получаешь последовательность, а затем убираешь всё лишнее.
 >>> m = 12.5
>>> [ y for y in ((x * x + 100.) / (x + 200.) for x in xrange(100)) if y < m ]
[0.5, 0.5024875621890548, 0.5148514851485149, 0.5369458128078818, 0.5686274509803921, .....]
py.user.next
Rodegast
 xrange(100)
x прин. [1; 100]
Rodegast
> x прин.

Да не суть важно. На алгоритм это никак не влияет.
py.user.next
Rodegast
Да не суть важно.
Это область определения функции.
yyyuuu
при 1 ≤ х ≤ 100 (х – целое число).
Ты берёшь ноль, который не входит в область определения, - то есть значение функции не существует в той точке. И одну точку не добираешь справа.

Rodegast
 [0.5, 0.5024875621890548, 0.5148514851485149
Вот это значение 0.5 не должно там быть. Значения функции нет такого.
А при m = 33.7, у тебя не берёт значение 33.6, потому что не доходит до него.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB