Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 9, 2017 13:54:53

alexhyd18
Зарегистрирован: 2017-01-09
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение геодезической задачи в Python

Всем добрый день.
Мне (я чайник в программировании) поставлена задача сработать программу уравнивания нивелирного хода. Образец находится здесь.
Нужно извлечь с текстового файла превышения точек (название точки и значение превышения через пробел, точность измерения до 0.5 мм), выполнить расчёты и вывести итоговые данные в другой текстовый файл с сохранением. Всё бы ничего, если не пункты 3-4)) Ввод длины хода, как понимаю, проще с клавиатуры.
Желателен итог для Python 2.7.
Надеюсь на помощь, заранее спасибо!

Отредактировано alexhyd18 (Янв. 9, 2017 14:05:53)

Офлайн

#2 Янв. 11, 2017 13:33:00

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Решение геодезической задачи в Python

Зря надеетесь, никто не будет за вас писать программу. Вот если у вас во время написания появяться вопросы\затруднения тогда велкам.
вот вам для затравки простой пример как открыть файл и считать с него построчно информацию

 f = open('sample.txt')
for line in f:
    print(line)



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Янв. 11, 2017 13:33:12)

Офлайн

#3 Янв. 11, 2017 14:03:05

alexhyd18
Зарегистрирован: 2017-01-09
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение геодезической задачи в Python

PEHDOM
Зря надеетесь, никто не будет за вас писать программу.

Я не так написал, перефразирую))
Есть получаемое число, которое является целым, либо дробным (есть случай только с получением значения 1.5, 7.5, 12.5 и так далее). И существует целый перечень чисел (как положительных, так и отрицательных, но не в этом суть). Вопрос состоит в том, что нужно это получаемое число по возможности равномерно разнести по перечню других чисел. Причём целыми числами. К примеру, величина получилась 8.5, и нужно разнести для девяти чисел - для семи получится “поправка” единичка, в одной - полтора (одна остаётся ни с чем). Или если величина 12, а перечень чисел равен семи - то (допустим) для пяти чисел из перечня поправка будет равна двум, а для остальных - единичка.
Как это сделать в питоне? И как сконструировать распределение из первого примера?

Офлайн

#4 Янв. 11, 2017 14:44:32

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Решение геодезической задачи в Python

Чё?



Офлайн

#5 Янв. 11, 2017 15:00:40

alexhyd18
Зарегистрирован: 2017-01-09
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение геодезической задачи в Python

FishHook
Чё?
Ещё короче))
Берётся число Х (не вводится, рассчитывается; оно либо целое, либо с дробной частью в .5). Надо разложить его на N слагаемых, поравномернее (а изначально даётся каталог чисел, и здесь присутствуют два случая: когда слагаемых N достаточно, чтоб распределить число X по списку; когда слагаемых N недостаточно). При этом все слагаемые, кроме, быть может, одного или нескольких, должны быть целыми. Слагаемые должны быть либо равны как минимум единице (а дальше 1.5, 2, 2.5 и так далее), либо нулю. Слагаемое 0.5 исключено.

Отредактировано alexhyd18 (Янв. 11, 2017 15:45:34)

Офлайн

#6 Янв. 11, 2017 16:23:16

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Решение геодезической задачи в Python

а еще попроще, что значит “поравномернее”?
Приведите простой банальный пример и формулу по котторой это нужно считать.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Янв. 11, 2017 16:23:31)

Офлайн

#7 Янв. 11, 2017 16:49:33

alexhyd18
Зарегистрирован: 2017-01-09
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение геодезической задачи в Python

PEHDOM
а еще попроще, что значит “поравномернее”? Приведите простой банальный пример и формулу по которой это нужно считать.
Хорошо, пример)
Выводится из расчёта число X (ну допустим, 9.5). Оно было рассчитано из перечня других чисел (слагаемые N - допустим, их 11).
Задача 1. Разложение числа X (то бишь, 9.5) на N (11)
То есть, полностью (из условий, которые я написал ранее) полностью на все слагаемые разложить это число не получится. В этот и состоит “равномерность” распределения числа X. То есть, простым языком, в данном случае потребуется на 11 слагаемых приходится 8 значений по единице и одна, равная 1.5 (остальным ничего не достаётся, ну или ноль). Ну и хаотично разбросать.
Задача 2. Разложение числа X (тут пусть будет 14) на N (8).
Здесь распределение коснётся для всех слагаемых. Вопрос - каким образом. Здесь потребуемся на 8 слагаемых приходится 6 значений по два и 2 значения по единичке. Вопрос разброса полученных значений тоже присутствует.
В этом суть моего вопроса. Формулы для решения такой задачи в математике и геодезии нет.

Офлайн

#8 Янв. 11, 2017 17:28:17

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Решение геодезической задачи в Python

уточнение в 2-й задаче обязательно должно быть 6 по 2 и 2 по 1 или можно например: одно значение 3, пять по 2 и два по 1?



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#9 Янв. 11, 2017 18:43:09

alexhyd18
Зарегистрирован: 2017-01-09
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение геодезической задачи в Python

PEHDOM
уточнение в 2-й задаче обязательно должно быть 6 по 2 и 2 по 1 или можно например: одно значение 3, пять по 2 и два по 1?
Минимальная вариация.

Офлайн

#10 Янв. 13, 2017 14:57:50

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Решение геодезической задачи в Python

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

 def expand(X,S,N):
    '''
    параметры:
    X - число которое нужно разложить на слагаемые
    S - сумма уже разложенных слагаемых
    N - колличество слагаемых на которое нужно разделить X-S
    Возвращает одно  целое слагаемое или 1.5 если X-S = 1.5
    '''
    delta = 1.5 # минимальное дробное значение
    rest = X-S
    if rest == (delta):
        return (delta)
    if N == 1:
        return (rest)
    elif N <=0:
        return 0
        #return None
    else:
       d = round(rest/N)
       return(d)
X=float(input('Enter X'))
N=int(input('Enter N'))
s= 0
lst= list()
n = N
while n > 0:
    d = expand(X,s,n)
    lst.append(d)
    s += d
    n -= 1
print('Веедено:', X, 'К-во слагаемых:', N, '\nПеречень слагаемых',lst, '\nСумма слагаемых:',s)



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Янв. 13, 2017 14:59:07)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version