
Andrey
04.07.2016
19:39:17
ну и range(len(a)) можно как range(size) записать

Dim
04.07.2016
19:40:44
нуда

Темный
04.07.2016
19:41:03
так, а как без join сделать строку из списка?

Andrey
04.07.2016
19:41:36
конкатенацией

Google

Темный
04.07.2016
19:41:51
епт, точно
конкатенацией
так, а если надо разделить пробелом и что бы после последнего числа не было пробела?

Denis
04.07.2016
20:04:26

Темный
04.07.2016
20:04:32
так, а как без join сделать строку из списка7

Andrey
04.07.2016
20:04:49
ну соответсвенно тебе надо поставить на один пробел меньше чем элементов в списке

Sergey
04.07.2016
20:05:16

Темный
04.07.2016
20:06:25
условие такое
ладно, хер с ним, пусть будет join, запарило столько времени на простую задачу

Denis
04.07.2016
20:08:02
def join(arr, sep):
s = arr[0]
for i in arr[1:]
s += sep + i
return s

Темный
04.07.2016
20:08:39
функции тоже еще типа не изучены, лол

Andrey
04.07.2016
20:10:38

Темный
04.07.2016
20:11:16
так, последний раз на сегодня пристаю, почему join не сработало?
a = [int(i) for i in input().split()]
out = []
d = len(a)
count = 1
finish = 0
if d != 1 and d > 0:
for element in a:
if element == a[0]:
out.append(a[-1] + a[1])
elif element == a[d - 1]:
out.append(a[0] + a[d - 2])
else:
out.append(a[count - 1] + a[count + 1])
count += 1
finish = ' '.join(out)
print(finish)
else:
finish = str(a[0])
print(finish)

Google

Andrey
04.07.2016
20:11:19
@bladdon только надо не с 0 а с 1 элемента итерироваться тогда

Темный
04.07.2016
20:11:26
TypeError: sequence item 0: expected str instance, int found

Sergey
04.07.2016
20:11:43

Темный
04.07.2016
20:12:26

Denis
04.07.2016
20:12:40

Темный
04.07.2016
20:13:13
но ведь и так должно было сработать? разве нет?

Denis
04.07.2016
20:13:27
Нет, join хочет массив строк

Andrey
04.07.2016
20:13:34
если у тебя в массиве только строки то сработает

Denis
04.07.2016
20:13:58
А еще можно print(*out)

Sergey
04.07.2016
20:13:59
" ", без разделителя после последнего
In [11]: x=list('ahdhejhehdd')
In [12]: y=''
In [13]: while x:
z = x.pop(0)
y += (z + ' ') if x else z
....:
In [14]: y
Out[14]: 'a h d h e j h e h d d'
Самоё очевидное

Темный
04.07.2016
20:14:20

Sergey
04.07.2016
20:15:25
Или можно убрать условие и просто последний пробел обрезать

Viktor
04.07.2016
20:16:55

Dim
04.07.2016
20:17:43

Темный
04.07.2016
20:19:00
уже сделал

Dim
04.07.2016
20:19:08
элементарно
'5 1 2 6 5 6 6'
дает
'7 7 7 11 7 11 11'
»
2+5 != 11
6+6 != 7

Темный
04.07.2016
20:22:42

Google

Dim
04.07.2016
20:22:55
попробуйте

Темный
04.07.2016
20:24:00

Dim
04.07.2016
20:24:04
если утрировать можно и так решение описать
a = '1 3 5 6 10'
return '13 6 9 15 7'

Viktor
04.07.2016
20:25:53

Темный
04.07.2016
20:28:46
кароче надо по индексам счиатть, я понял
алилуя
а я по значениям считал, кто-то даже выше говорил об этом

Dim
04.07.2016
20:29:41

mey
05.07.2016
04:54:51
Всем привет, можете проверить алгоритм, пожалуста
Выше кидали задачу про трехмерный массив и максимальную сумму взаимно перпендикулярных столбоцов/строк
Вот мой алгоритм: для каждой ячейки находим сумму относительно нее вот так

mey
05.07.2016
04:58:31
Я праивльно сделала или нет?

Zart
05.07.2016
04:59:41
в лоб

mey
05.07.2016
04:59:56
Но это правильно?
Мне хотя бы так

Zart
05.07.2016
05:00:22
кажется нет
у тебя s1..s3 обнуляются лишь в начале всего скана
а надо занулять для каждой ячейки, иначе у тебя сумма будет накапливаться ояебу

mey
05.07.2016
05:01:03
Нет, потом еще в цикле

Google

Zart
05.07.2016
05:01:26
а, вижу

mey
05.07.2016
05:01:29
For z in range(n)

Zart
05.07.2016
05:01:47
но зачем совать зануление перед циклами и в конце, если можно просто в начале тела цикла
не понимаю зачем coord*=*

mey
05.07.2016
05:02:22
Для читаемости

Zart
05.07.2016
05:02:41
скорее наоборот

mey
05.07.2016
05:03:01
Можно это все убрать

Zart
05.07.2016
05:03:21
в общем решение сделано грубым перебором

Admin
ERROR: S client not available

mey
05.07.2016
05:03:38
Я думала над тем, как иначе
Можно находить макс суммы относительно каждой грани
Макс столбец

Zart
05.07.2016
05:04:04
гм... ну можно посчитать суммы всех линий в один проход

mey
05.07.2016
05:04:07
Для него второй макс столбец

Zart
05.07.2016
05:04:11
а потом сканировать с оптимизацией

mey
05.07.2016
05:04:19
А для третьего третий

Zart
05.07.2016
05:04:39
не, проблема с поиском максимумов по каждой грани в том, что там надо будет вычитать пересечение

mey
05.07.2016
05:04:43
Но не факт, что для макс столбца сумма всех будет максимальной

Zart
05.07.2016
05:04:52
угу

mey
05.07.2016
05:06:23
Я забыла, как программа называется

Google

mey
05.07.2016
05:06:36
С 3D моделированием

Zart
05.07.2016
05:07:04
их много.. 3дстудио макс, блендер, лайтвейв, майя

mey
05.07.2016
05:07:19
Опенгл
Вот

Zart
05.07.2016
05:07:28
это не программа

mey
05.07.2016
05:07:32
И курсач на 1 курс готов лол

Zart
05.07.2016
05:07:40
условия задачи дай-ка

mey
05.07.2016
05:07:46
Я не знаю
Кидали где-то здесь

Zart
05.07.2016
05:07:53
я про это пересечение

mey
05.07.2016
05:08:02
Я просто внимание обратила
Да, кстати, я неправильно сделала
Я не вычла пересечение
Нужно его вычитать

Zart
05.07.2016
05:08:28
просто если точка пересечения должна учитываться лишь раз, то тогда твой код неверен
да

mey
05.07.2016
05:10:06
Я доработала)
C opengl трудно работать?
Сколько примерно времени уйдет на то, чтобы я сделала это в трехмерном пространстве?

Zart
05.07.2016
05:11:39
import random
from pprint import pprint
n = int(input())
a = [[[random.randint(1, 100) for z in range(n)]
for y in range(n)]
for x in range (n)] # заполнение куба
pprint(a)
c = 0, 0, 0
summ = a[0][0][0]
for x in range(n):
for y in range(n):
for z in range(n):
s = sum((a[i][y][z] + a[x][i][z] + a[x][y][i]) for i in range(n))
s -= a[x][y][z] * 2
if s > summ:
summ = max(summ, s)
c = x, y, z
print('максимальная сумма в данном случае')
print(summ)
print('координаты взаимно перепендикулярных столбоцов')
print('(', c[0]+1, ';', c[1] +1, ';', c[2] +1, ')')
Эта группа больше не существует