Перейти к публикации
  • Сейчас на странице   Всего пользователей: 12   (0 пользователей, 12 гостей)

Rooster

Программирование[8]

Рекомендованные сообщения

 

 

Есть X массивов в листе, с различными числами, которых Y. 
И из этих массивов нужно найти массив, в котором числа, если их склеить, образуют наименьшее число.

ну это чуть по больше условий, и под 40% нагрузки на ГПУ будет

скину вечером рабочий пример

Поделиться сообщением


Ссылка на сообщение

 

Есть X массивов в листе, с различными числами, которых Y.

И из этих массивов нужно найти массив, в котором числа, если их склеить, образуют наименьшее число.

ну это чуть по больше условий, и под 40% нагрузки на ГПУ будет

скину вечером рабочий пример

Хира, ты такой альтруист, я впервые вижу вообще.

pepehands 

Поделиться сообщением


Ссылка на сообщение

с двух постов выше выпал в осадок и почувствовал себя долбаёбом

не надо так

 

 

Хиро а объянение для гуманитариев можно?


Скрытый текст

 

OMGVERYLONGNAME написал 08.06.2018 в 12:50:
потому что ты не игрок, ты мразь на любой роли
ZombBomb написал 05.12.2018 в 19:27:
лол
Fint написал 19.07.2019 в 15:49:
Ок, я ошибся

 

 

NaniQue- написал 30.07.2019 в 10:37:
висп вроде норм игрок

 

 

Поделиться сообщением


Ссылка на сообщение

Так если массив не отсортирован никак, то только складывать

Поделиться сообщением


Ссылка на сообщение
(изменено)

а бля не так понял


Изменено пользователем DDamager

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

Есть X массивов в листе, с различными числами, которых Y. 

И из этих массивов нужно найти массив, в котором числа, если их склеить, образуют наименьшее число.

ну это чуть по больше условий, и под 40% нагрузки на ГПУ будет

скину вечером рабочий пример

 

Не, спасибо, не нужно, добрый человек)

Рабочий пример написать можно, если понять как логически решать.

охуенно описал братан. не думал начать составлять задания для лит кода?

Короче, снова проебался, не знаю как описать нормально.

 

Есть элементы, а эти массивы отображают порядок элемента в дереве.

То есть:

94c27711743979ba02d293a8442df36b.png

Все эти "координаты" ветки в дереве и есть лист массивов всех координат.

Но все элементы дерева нам  не нужны, поэтому передаются координаты элементов в дереве, которые обладают каким-то свойством, образуя лист массивов.

Пример:

[

  [1, 150, 1],

  [150, 1, 1]

]

Тут первым будет [1, 150, 1] и суммой верный не найти.

 

Изначально мысль была брать эти массивы и тупо склеить вот так: 

[1, 150, 1] = 11501

[150, 1, 1] = 15011

И брать меньшее число, но это не работает вот тут, к примеру:

[

  [1, 1, 1, 1, 1],

  [1, 2]

]

Тогда решили делать вот так:

1, 1, 1, 1, 1 = 11111

1, 2, 0, 0, 0 = 12000

Так работает, но получается число такого вида:

12^10e50

 

Я не прошу решить кого-нибудь, просто может какую-то идею подкинет и можно будет зацепится, пока я ваще ХЗ что тут делать


Изменено пользователем v1le

 

Лучшая в этом мире

4cd5e7dcf57746f698f023a78718.jpg

 

 

Лучшая в мире читает стихи

 

Эксперт в религии
 

Поделиться сообщением


Ссылка на сообщение

ну самая элементарная идея здесь это склеивать их как строки, потом находишь лексикографически минимальную строку (что по сути одно и то же только без огромных интов)

v1le понравилось это

Поделиться сообщением


Ссылка на сообщение
(изменено)

По-мойму можешь вообще сортировку вставками или слиянием сделать и все.

Просто у тебя будет сложность выше потому что сравниваться будет не число с числом, а массив с массивом. В наихудшем варианте придется пройти каждый массив.

 

[
    [1, 150, 1],
    [150, 1, 1],

    [4, 1, 1],

    [23, 31, 32, 64],

    [4, 2, 3],

    [322, 22]

]

 

Берешь второе, так как у тебя приоритетность идет по ключу, то просто парами можно сравнивать. Первое с первым: 150 > 1, значит оставляем как есть.

У третьего 4 будет меньше 150, но больше 1, значит ставим между ними, вот у тебя уже так:

[
    [1, 150, 1],

    [4, 1, 1],
    [150, 1, 1],

    [23, 31, 32, 64],

    [4, 2, 3],

    [322, 22]

 

]

 

Ну и дальше проходишь так все остальные, при равенстве скипаешь до следующего числа. 

Слиянием бьешь просто по две и склеиваешь, но это почитать можешь в книжке)


Изменено пользователем dfgrd

Поделиться сообщением


Ссылка на сообщение
(изменено)

Все эти "координаты" ветки в дереве и есть лист массивов всех координат.

Но все элементы дерева нам  не нужны, поэтому передаются координаты элементов в дереве, которые обладают каким-то свойством, образуя лист массивов.

нихуя не понял

 

что тебе найти нужно?

 

первый "элемент из переданного списка"?

тоесть

[

  [1, 1, 1, 1, 1],

  [1, 2]

]

верным будет 1 1 1 1 так как он первее чем 1,2

если так то попробую написать...

 

 

 

Не, спасибо, не нужно, добрый человек)

наполовину готово, сделаю будешь крутить как хочешь, даже если не нужно будет, пофик всеравно делать нехуй

 

наполовину готово

алгоритм такой:

 

первый проход - поиск "максимальных размеров массива", чтоб знать какой размер [x,y,z,w....]

напримерм для значений

[1, 100, 1],

[4, 1, 2],

[150, 1, 1],

[1, 2],

[1, 1, 1]

максимальный размер будет [150,100,2] (трехмерный массив размера 150 на 100 на 2)

 

второй проход - считаешь линейный ID каждого элемента

1+100*2+1*100*2=401

2+1*2+4*100*2=804

1+1*2+150*100*2=30003

0+2*2+1*100*2=204

1+1*2+1*100*2=203

 

третий проход - сравнивнение линейных ID и нахождение меньшего

для примера меньшим будет 203 тоесть [1, 1, 1]

 

...делаю такую логику


Изменено пользователем hira88

Поделиться сообщением


Ссылка на сообщение

 

 

первый проход - поиск "максимальных размеров массива", чтоб знать какой размер [x,y,z,w....]

напримерм для значений

[1, 100, 1],

[4, 1, 2],

[150, 1, 1],

[1, 2],

[1, 1, 1]

максимальный размер будет [150,100,2] (трехмерный массив размера 150 на 100 на 2)

Представляешь какая там будет штука происходить, если у них число 12^10e50 получается.

У тебя проходятся все массивы и в каждом массиве каждый элемент для выявления максимального.

Поделиться сообщением


Ссылка на сообщение

 


Представляешь какая там будет штука происходить, если у них число 12^10e50 получается.

У тебя проходятся все массивы и в каждом массиве каждый элемент для выявления максимального.

поэтому я и скаал 40% нагрузки будет

быдет 1000 потоков для этого (уже делал 1 в 1 такое)

и второй проход сортировка того что выдали 1000 потоков при первой сортировке

и результат....тривиально

Поделиться сообщением


Ссылка на сообщение

Спасибо всем!
По итогу думаю можно сделать так:
Берем первый элемент из массивов в списке и находим минимальный.
Отбрасываем все массивы, в которых первый элемент уже не равен минимальному.

И так до тех пор пока не останется последний или один из массивов не кончится.

:hmm:


 

Лучшая в этом мире

4cd5e7dcf57746f698f023a78718.jpg

 

 

Лучшая в мире читает стихи

 

Эксперт в религии
 

Поделиться сообщением


Ссылка на сообщение
(изменено)

а ладно 


Изменено пользователем Matriarch

Поделиться сообщением


Ссылка на сообщение

Пиздец, как скопировать board в trello? Охуеть, ну почему ui в большинстве случаев супер уебский везде


Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
 

Поделиться сообщением


Ссылка на сообщение

Пиздец, как скопировать board в trello? Охуеть, ну почему ui в большинстве случаев супер уебский везде

Лучше чем в асане))

Поделиться сообщением


Ссылка на сообщение

Спасибо всем!

По итогу думаю можно сделать так:

Берем первый элемент из массивов в списке и находим минимальный.

Отбрасываем все массивы, в которых первый элемент уже не равен минимальному.

И так до тех пор пока не останется последний или один из массивов не кончится.

:hmm:

 

так это не решает ту задачу что ты написал

 

[1, 1500000]

[150, 150]

у тебя будет выбран первый массив хотя он длиннее второго

Поделиться сообщением


Ссылка на сообщение

В первом проходе нижний выбросится 


 

Лучшая в этом мире

4cd5e7dcf57746f698f023a78718.jpg

 

 

Лучшая в мире читает стихи

 

Эксперт в религии
 

Поделиться сообщением


Ссылка на сообщение
(изменено)

я это и написал. у тебя первый будет ответом хотя 11500000 > 150150

 

если это правильный ответ то ты хуево объянил значит, т.к. это явно не минимум


Изменено пользователем DDamager

Поделиться сообщением


Ссылка на сообщение
(изменено)

[

  [1. 1500000],

  ...

  [15000, 1]

]

 

min([1, 15000]) == 1

Отбрасываем второй.

 

По итогу найдем элемент, который является максимально близким (самый левый) к верхушке дерева по координатам.


Изменено пользователем v1le

 

Лучшая в этом мире

4cd5e7dcf57746f698f023a78718.jpg

 

 

Лучшая в мире читает стихи

 

Эксперт в религии
 

Поделиться сообщением


Ссылка на сообщение

Короче, я даун, неправильно написал.

....

И из этих массивов нужно найти массив, в котором числа, если их склеить, образуют наименьшее число.

 

понял принял

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...