@proRuby

Страница 239 из 1594
v
16.10.2016
00:16:51
йеп

I
16.10.2016
09:14:36
чет там слэш похоже забыт
example.com/create ? уже решили же проблему у человека, он не указывал path, на который долбит

Alexander
16.10.2016
12:30:45
Задача для тех кому скучно ) Задача состоит в следующем. Есть входящее число, скажем 4 и мы должны перебрать все возможные сочетания чисел от 1 до 4. т.е. 1234, 2341, 3412 и т.п. Кто смогет?)

Google
ojab
16.10.2016
12:35:06
(1..4).to_a.permutation(4).map(&:join)

trickster
16.10.2016
12:38:13
а руками сможешь написать реализацию метода пермутейшн?

Alex
16.10.2016
13:15:07
а руками сможешь написать реализацию метода пермутейшн?
неоптимальную? я думаю любой программист сможет

Alexander
16.10.2016
13:17:42
неоптимальную? я думаю любой программист сможет
к слову не накинешь мысли как колонки перемешать можно?

в духе [[1, 2], [3, 4], [5, 6]]

Alex
16.10.2016
13:18:12
рандомная сортировка не?

это же массивы, но они элементы одного массива

вот рутовый и мешай.

Alexander
16.10.2016
13:19:07
вот рутовый и мешай.
сложность в том что цифры из одной колонки не могу на выходе быть вместе, например 125

Alex
16.10.2016
13:19:22
Я не понял твою задачу.

Alexander
16.10.2016
13:19:32
Дано N колонок в духе [[1, 2], [3, 4], [5, 6]] нужно перемешать колонки между собой, в духе 135, 145, 235 и тп

Alex
16.10.2016
13:19:33
[[1, 2], [3, 4], [5, 6]] ты тут хочешь местами элементы поменять?

Стоп, колонок в смысле [[1, 2], [3, 4], [5, 6]] или [ [[1, 2], [3, 4], [5, 6]], [[1, 2], [3, 4], [5, 6]] ] ?

Google
Aldar
16.10.2016
13:19:54
Alex
16.10.2016
13:20:43
(либо я все еще не понял задачу)

Alexander
16.10.2016
13:21:07
Стоп, колонок в смысле [[1, 2], [3, 4], [5, 6]] или [ [[1, 2], [3, 4], [5, 6]], [[1, 2], [3, 4], [5, 6]] ] ?
первая [1, 2] вторая [3, 4] третья [5, 6] нужно взять слово из 1, смешать со 2 и 3. И этих колонок N и обьектов в них M

и получить все возможные комбинации

Alex
16.10.2016
13:21:53
что за задача такая странная? ?

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

Alexander
16.10.2016
13:22:32
что за задача такая странная? ?
на самом деле не странная, у меня в задаче вместо цифр слова и их надо "сложить"

между собой в различных вариациях

Alex
16.10.2016
13:22:46
кинь задачу, мне чот интересно стало

скинь задачку, хочу посмотреть

Alexander
16.10.2016
13:26:21
скинь задачку, хочу посмотреть
вот словами например [купить, приобрести], [яблоко, банан], [дешево, быстро]

Alex
16.10.2016
13:26:31
и тебе надо перемешать все слова?

Alexander
16.10.2016
13:27:39
да, но смысл их перемешивания теперь понимаешь?

сложность в том что кол-во столбцов N

Alex
16.10.2016
13:28:24
Да я кажется уловил суть

Alexander
16.10.2016
13:28:31
так бы можно было просто words[0].map do |w0| words[1].map do |w1| words[2].map do |w2| w0 + w1 + w2 end end end

Alex
16.10.2016
13:28:41
это тот же permutation просто многомерный

Alexander
16.10.2016
13:29:00
да

Alex
16.10.2016
13:29:32
надо подумать.

Google
Alex
16.10.2016
13:31:19
#!/usr/bin/env ruby p %w(купить, приобрести).product([%w(яблоко банан), %w(дешево быстро)])

[["купить,", ["яблоко", "банан"]], ["купить,", ["дешево", "быстро"]], ["приобрести", ["яблоко", "банан"]], ["приобрести", ["дешево", "быстро"]]]

фигня правда получилась

Alexander
16.10.2016
13:34:49
words = ['купить', 'приобрести'], ['яблоко', 'банан'], ['дешево', 'быстро'] words[0].map do |w0| words[1].map do |w1| words[2].map do |w2| [w0, w1, w2].join ' ' end end end надо как то рекурсией

Alex
16.10.2016
13:35:59
#!/usr/bin/env ruby arr = %w(купить приобрести).product(%w(яблоко банан)).product(%w(дешево быстро)).flatten.each_slice(3).to_a arr.each do |e| puts e.join(" ") end купить яблоко дешево купить яблоко быстро купить банан дешево купить банан быстро приобрести яблоко дешево приобрести яблоко быстро приобрести банан дешево приобрести банан быстро

то что надо?

(кривое решение кстати, можно оптимизировать)

Alex
16.10.2016
13:36:54
Спасибо за задачку кстати, сегодня я узнал о руби чуть чуть больше.

а где тут N штук
Сказал же кривое решение ?

#!/usr/bin/env ruby products = %w(яблоко банан) arr = %w(купить приобрести).product(products).product(%w(дешево быстро)).flatten.each_slice(3).to_a arr.each do |e| puts e.join(" ") end Так лучше?

Alexander
16.10.2016
13:37:42
Сказал же кривое решение ?
просто через map то же не плохо вроде ))

Alex
16.10.2016
13:37:58
вместо того чтобы юзать стандартную библиотеку которая к тому же будет быстрее работать?

У меня сырое решение, его можно допилить и будет конфетка.

обожаю руби ❤️

Alexander
16.10.2016
13:51:07
обожаю руби ❤️
words = [["купить", "приобрести"], ["яблоко", "банан"], ["дешево", "быстро"]] results = words.shift words.count.times do |i| results = requests.product(words[i]) end results.flatten.each_slice(words.count+1).to_a

Alex
16.10.2016
13:51:20
Зачем?

что не так с функцией product? :)

Alexander
16.10.2016
13:51:35
для N колличества

Google
Alex
16.10.2016
13:51:58
Её тоже в N количество можно перевести

и операций меньше будет. А так, делай как хочешь.

Alexander
16.10.2016
13:52:43
и операций меньше будет. А так, делай как хочешь.
не пойму просто тебя, что ты имеешь ввиду

Aldar
16.10.2016
13:53:01
https://mail.haskell.org/pipermail/haskell-cafe/2002-June/003122.html

Alex
16.10.2016
13:53:08
рубишная функция product делает тоже самое что permutation только для многомерных вариаций

Alexander
16.10.2016
14:04:52
a = [1, 2] b = [3, 4], [5, 6] r1 = a.product(b) r2 = [1,2].product([3, 4], [5, 6]) r1 == r2 # false почему они не равны?

Alex
16.10.2016
14:05:37
ну посмотри что в них находится ?

Alexander
16.10.2016
14:05:58
ну посмотри что в них находится ?
я знаю что в них находится

Alex
16.10.2016
14:06:02
а я нет

Admin
ERROR: S client not available

Aldar
16.10.2016
14:06:16
блин, в хаскеле эта задача просто решается, забыл уже немного

Alex
16.10.2016
14:06:29
в раби тоже

Aldar
16.10.2016
14:06:34
через монаду списка

Alexander
16.10.2016
14:07:17
r1 [[1, [3, 4]], [1, [5, 6]], [2, [3, 4]], [2, [5, 6]]] r2 [[1, 3, 5], [1, 3, 6], .....]

Alex
16.10.2016
14:07:38
Удивительно, и почему же они казалось бы не ==

наверное потому что они не ==

Alexander
16.10.2016
14:08:58
Удивительно, и почему же они казалось бы не ==
ты серьезно не понимаешь к чему вопрос?

Alex
16.10.2016
14:09:23
Ты спрашиваешь почему получаются разные хэши при разных аргументах к функции? серьезно?

Andrey ?
16.10.2016
14:09:28
Alexander
16.10.2016
14:09:39
А они тут должны быть равны?
нет они не должны быть равны

Google
Иван
16.10.2016
14:10:06
посмотри чему b у тебя равно

Alex
16.10.2016
14:10:46
посмотри чему b у тебя равно
там явное присвоение b идет

Alexander
16.10.2016
14:14:22
банальные ответы закончились? может теперь кто подскажет почему если передаю переменную получаю другой результат?

Alex
16.10.2016
14:15:30
Потому что там ты передаешь один аргумент

а тут два

очевидно же

переменная это один аргумент, независимо от того что она хранит

а в другом месте ты через запятую передаешь два аргумента.

Andrey ?
16.10.2016
14:15:58
a = [1, 2] b = [3, 4], [5, 6] r1 = a.product(b) r2 = [1,2].product([3, 4], [5, 6]) r1 == r2 # false почему они не равны?
Я думаю, тут проблема в том, что ты накосячил с объявлением b

Alex
16.10.2016
14:16:15
можно splat оператор заюзать

Иван
16.10.2016
14:16:35
*b передай

Alexander
16.10.2016
14:17:06
*b передай
спасибо!

наконец то!

Aldar
16.10.2016
14:17:53
в итоге какое решение?

Alexander
16.10.2016
14:19:08
Что бы перемешать N колонок words.shift.product(*words)

в итоге какое решение?
если ты про это

Alex
16.10.2016
14:20:33
words = ['купить', 'приобрести'], ['яблоко', 'банан'], ['дешево', 'быстро'] words[0].map do |w0| words[1].map do |w1| words[2].map do |w2| [w0, w1, w2].join ' ' end end end надо как то рекурсией

сравни с этим ))

Но все же shift это рандом

твое решение неверное (наверное)

Aldar
16.10.2016
14:22:17
если ты про это
про задачу [[1,2], [3,4], [5,6]], где надо взять по одному элементу из каждого массива и всевозможные их перестановки

Страница 239 из 1594