Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 18, 2015 17:48:32

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Сгенерирывать массив вещественных с не эквидистантным шагом

ElfStone
Геометрическую прогрессию сгенерировать вполне реально, но переменного шага добиться не получается.
Автор, куда же вы пропали? Или не заметили мое решение среди других ответов?
Еще раз, вот с переменным шагом, как вы хотели.
from math import exp, ceil
X = list(map(lambda i: ceil(exp(i)), range(5)))
Y = list(range(56)) # элементы int в списке только для простоты, вообще можно любые
Z = []              # сюда добавляем элементы из Y, выбирая их с (почти) экспоненциально меняющимся шагом
for i in X:
   Z.append(Y[i])

Офлайн

#2 Ноя. 20, 2015 02:48:31

ElfStone
Зарегистрирован: 2015-11-14
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Сгенерирывать массив вещественных с не эквидистантным шагом

Что такое комплексный шаг, я честно говоря плохо понимаю

Это как-то не по-питоновски, но делает то что нужно -
переменный шаг, меняющийся по экспоненте

    res = []
    step = log(end/start)/float(numb - 1)
    for i in range(numb):
        res.append(exp(log(start) + i * step))

Отредактировано ElfStone (Ноя. 20, 2015 02:48:53)

Офлайн

#3 Ноя. 20, 2015 22:01:02

ElfStone
Зарегистрирован: 2015-11-14
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Сгенерирывать массив вещественных с не эквидистантным шагом

2old_monty

Да действительно,шаг пременный. Спасибо.

Офлайн

#4 Ноя. 21, 2015 20:09:17

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Сгенерирывать массив вещественных с не эквидистантным шагом

> Или не заметили мое решение среди других ответов?
> Еще раз, вот с переменным шагом, как вы хотели.

> > Да действительно, шаг пременный. Спасибо.

Ну хорошо… Округлим результат из моего примера в большую сторону и будет тоже самое:

>>> map(math.ceil, map(math.exp, xrange(10)))
[1.0, 3.0, 8.0, 21.0, 55.0, 149.0, 404.0, 1097.0, 2981.0, 8104.0]



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Ноя. 22, 2015 07:24:37

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Сгенерирывать массив вещественных с не эквидистантным шагом

Rodegast
Ну хорошо… Округлим результат из моего примера в большую сторону и будет тоже самое:
>>> map(math.ceil, map(math.exp, xrange(10)))

Вы просто проходите по списку целых чисел от 0 до 9 с постоянным шагом (step = 1), и к каждому элементу i применяете функцию exp(i). Где здесь переменный шаг цикла, который требовался по заданию?

Офлайн

#6 Ноя. 22, 2015 11:40:36

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Сгенерирывать массив вещественных с не эквидистантным шагом

> Где здесь переменный шаг цикла, который требовался по заданию?

Какой же ты непонятливый. Последовательность с переменным шагом это и есть результат работы функции. В школе график функции на уроках математики строил? Вот тут происходит тоже самое.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#7 Ноя. 22, 2015 13:06:02

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Сгенерирывать массив вещественных с не эквидистантным шагом

Rodegast
Какой же ты непонятливый. Последовательность с переменным шагом это и есть результат работы функции. В школе график функции на уроках математики строил? Вот тут происходит тоже самое.
Непонятливый в данном случае ты. Ты до сих пор не понял (или притворяешься, что не понял) условие задачи. И тут даже близко не происходит “то же самое”. У тебя никакая не “последовательность с переменным шагом”. Такого понятия вообще нет, “последовательность с переменным шагом”. Да и с постоянным тоже. Понятие шага используется только при обходе элементов последовательности. Например, что ты можешь сказать о “шаге” для такой последовательности
mylist = ['a', 'b', '13', 'xyz', 'bla-bla-bla']
если не указано, с каким шагом делать обход ее элементов?

В твоем решении делается обход элементов последовательности из 10 элементов (целых чисел от 0 до 9), но не с переменным шагом, а с постоянным (равным 1), один за другим, применяя к каждому целочисленному элементу exp(i) в функции map. В результате у тебя получилась новая последовательность, также из 10 элементов, значения которых изменяются по экспоненте. Разве это требовалось в условии?

Офлайн

#8 Ноя. 22, 2015 13:46:08

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Сгенерирывать массив вещественных с не эквидистантным шагом

> Такого понятия вообще нет, “последовательность с переменным шагом”. Да и с постоянным тоже.

Тут имеется в виду последовательность чисел, а шаг это разность между соседними числами. По моему это очевидно.

> В результате у тебя получилась новая последовательность, также из 10 элементов, значения которых изменяются по экспоненте. Разве это требовалось в условии?

А разве нет?

Сгенерирывать массив вещественных с не эквидистантным шагом.
Собственно, как сгенерировать последовательность в указанном диапазоне с экспоненциальным шагом?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Ноя. 22, 2015 13:50:10)

Офлайн

#9 Ноя. 22, 2015 15:58:54

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Сгенерирывать массив вещественных с не эквидистантным шагом

Rodegast
Тут имеется в виду последовательность чисел, а шаг это разность между соседними числами. По моему это очевидно.
А по-моему очевидно, что ты цитируешь выборочно, причем с искажением смысла. Первое сообщение ElfStone было еще не вполне ясное, но ты выбрал именно его, ведь это выгодно для тебя. Однако другое его сообщение (там же, на 1-й странице), где он уточняет свое требование, ты предпочел игнорировать. Ну что ж, придется мне сделать это специально для тебя:
ElfStone
смысл экспоненциального шага не в том что разность между соседними элементами составляет 2.7 а в том что сам шаг изменяется.

Мое решение как раз и реализует переменный шаг (в данном случае близкий к экспоненциальному). Автор темы ElfStone подтвердил, что это то самое, что ему было нужно. Более того, мое решение работает также и для последовательностей с не числовыми элементами, например, с элементами из строк. А твое - нет.

Удивительно, насколько упорно ты не желаешь признать свою ошибку в этой простой задачке. Это же элементарный уровень. Не вижу ничего хорошего в том, что я вынужден подробно разъяснять и доказывать настолько простые вещи тебе, такому вроде бы опытному участнику данного форума.


Офлайн

#10 Ноя. 22, 2015 21:35:21

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Сгенерирывать массив вещественных с не эквидистантным шагом

>> А по-моему очевидно, что ты цитируешь выборочно, причем с искажением смысла… другое его сообщение, где он уточняет свое требование, ты предпочел игнорировать.
> смысл экспоненциального шага не в том что разность между соседними элементами составляет 2.7 а в том что сам шаг изменяется.

Конечно я его игнорировал т.к. ТС там глупость написал.

> Мое решение как раз и реализует переменный шаг …

А в чём собственно это решение состоит? У тебя сначала вычисляется список вещественных чисел с экспоненциальным шагом (это как раз то что и было нужно), а потом он зачем-то итерируеться и далее идёт выборка из к.л. списка. Т.е. ты включил фантазию и с чего-то взял что нужна выборка из списка с экспоненциальным шагом, хотя ТС ни о чём таком не просил.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version