
Vasily
18.06.2018
10:57:34
А в задаче разве локальная оптимизация не прокатит? Сначала пытаемся поделить на три, потом на два, потом вычесть единицу и по новой
Или её нельзя решить через постоянный выбор локального экстремума?

Rustem
18.06.2018
11:00:56
тоесть не 20 / 2 = 10 / 2 = 5 - 1 = 4 / 2 = 2 / 2 = 2 / 2 = 1
а 20 / 2 = 10 - 1 = 9 / 3 = 3 = 3 = 1

Google

Vasily
18.06.2018
11:05:47
Ну тогда надо граф решений строить, получается

Anna
18.06.2018
11:07:12

Vasily
18.06.2018
11:13:31
Задача похожа на классическую по размену денег, кстати
Хотя сформулирована хитрее

Rustem
18.06.2018
11:15:10
эта задача на Stepikе называется калькулятор

Pavel
18.06.2018
11:19:24

Roman
18.06.2018
11:22:30

Anna
18.06.2018
11:22:50
еее
я не виновата, что астрологи объявили
не уверен
А какая разница? делим же, если делится. Следовательно, можно крутиться от единицы, прибавляя 1, умножая на 2 и на 3. Получим в итоге решение для любого числа (докуда дойдём)

Pavel
18.06.2018
11:25:23
разница в кол-ве итераций

Anna
18.06.2018
11:26:23

Ayrat
18.06.2018
11:26:28
их вероятно будет меньше чем идти от числа до 1

Google

Rustem
18.06.2018
11:26:38
можно добавить проверку если (N % 3 - 1) % 2 == 0
и (N % 2 - 1) % 3 == 0
тогда проделать эти действия и прибавить 3 к счётчику действий

Pavel
18.06.2018
11:27:20
O(n)
пример в студию. хот на псевдо коде

Rustem
18.06.2018
11:27:29
O(n)
я вообще не понимаю эту О символику
на Степике курс проходил но не понял

Anna
18.06.2018
11:27:46
Всем Кормена, пацаны

Rustem
18.06.2018
11:29:23

Pauline
18.06.2018
11:29:59
так начни с чего-то попроще

Anna
18.06.2018
11:43:57

Andrey
18.06.2018
11:45:08
Определения через пределы самые понятные.

Roman
18.06.2018
11:46:36
O(n)
ну нет же.
Ты после каждого шага в худшем случае создаешь еще три узла которые нужн проверить и каждый потом создаст еще три узла и т.д. и т.п.
типа
let fsti : int list = checkOneLevel [ \3 ; \2; -1 ] N
>fsti : [N\3;N\2;N-1]
let sdi = List.map (checkOneLevel [\3; \2; -1]) fsti
>sndi : [[N\3\3; N\3\2; N\3 - 1] , [N\2\3; N\2\2; N\2 - 1] , [(N-1)\3; (N-1)\2;(N-1) -1] ]
и т.д.

Anna
18.06.2018
11:54:45
На F# сами переписывайте ?

Vlad
18.06.2018
11:55:07

Ayrat
18.06.2018
11:55:45
Далее от 1-го индекса, куда кладём кол-во шагов 0.
начинаем заполнять по алгоритму:
по всем ненулевым индексам (их будет всё меньше с каждой итерацией):
шагни на индекс * 3 и положи туда n+1 (удали из hashtable)
шагни на индекс * 2 и положи туда n+1 (удали из hashtable)
шагни на индекс + 1 и положи туда n+1 (удали из hashtable)
повторять пока все индексы не будут заполнены.
Алгоритм терминирующий, т.к. последний шаг будет постоянно выбивать хотя бы одному индексу за итерацию

Anna
18.06.2018
11:58:06

Rustem
18.06.2018
12:21:05

Roman
18.06.2018
12:39:53

Ayrat
18.06.2018
12:40:29
Я соглашусь. Но это поможет

Roman
18.06.2018
12:40:52

Anna
18.06.2018
12:41:17

Pavel
18.06.2018
12:51:28

Google

Anna
18.06.2018
12:57:12
Я кишками наружу оставила, считайте инструменты и зашивайте

Evgeniy
18.06.2018
13:29:45
https://safe-stack.github.io/docs/news/#18th-june

Sergey
18.06.2018
13:29:55
только хотел прислать)

Evgeniy
18.06.2018
13:30:00
Хех.
tl;dr
> remove Suave as a recommended option on the SAFE stack
> Our default recommendation for SAFE stack applications is to use Saturn or Giraffe directly, running on top of Kestel on ASP .NET.

Ayrat
18.06.2018
13:30:30
Топ кек
(Давно пора)
переименуются в GAFE?

Pavel
18.06.2018
13:31:22
SAFE оказался не Safe

Sergey
18.06.2018
13:31:59
не переимеются, под А там так то любой клауд)

Vlad
18.06.2018
13:32:01
Драма.

Ayrat
18.06.2018
13:32:45
Да, Haf себя изолирует от комьюнити

Evgeniy
18.06.2018
13:33:12

Pavel
18.06.2018
13:39:36
Saturn ?
Для меня SAFE звучало как "безопасный стэк" - типо-безопасный язык + опенсорс. А оказалось, что стэк технологий не такой уж и безопансый)

Roman
18.06.2018
15:06:22
Hi, Done!

Pavel
18.06.2018
15:08:07
Почему не безопасный?
ну из-за лицензии на логари пострадала репутация автора и всех его проектов, один из которых Suave. Использовать в продакшене Suave я бы сейчас не рискнул

Roman
18.06.2018
15:12:35
Ну и с лицензиями вроде все решили, suave не будет от логари зависеть

Google

Pavel
18.06.2018
15:13:06

Roman
18.06.2018
15:13:17
S - server

Pavel
18.06.2018
15:13:21

Roman
18.06.2018
15:13:48

Pavel
18.06.2018
15:13:55
S - server
ну я не про абревиатуру, а про стэк, изначльно там был только suave, а потом добавили жираф

Roman
18.06.2018
15:15:22

Pavel
18.06.2018
15:15:43
ну да, апи честно украденный из suave :)

Roman
18.06.2018
15:17:10
Ну так отличное же решение. Слава богу api не авторским правом не ограничивается

Mikhail
18.06.2018
15:17:47
А кто такой Хаф?

Pavel
18.06.2018
15:18:27
Да. в свете последних событий - слава Богу, что есть жираф. Хотя его появление было одной из причин такого хейта от haf в сторону MS

Anna
18.06.2018
15:19:09
Я какую-то драму пропустила, кажется

Evgeniy
18.06.2018
15:22:22

Ayrat
18.06.2018
15:25:36
А кто такой Хаф?
в прошлом - герой F# OSS Community
https://github.com/haf
сейчас отступник и бунтарь :D

Pavel
18.06.2018
17:08:56

Roman
18.06.2018
17:32:55
Одно не лишнее

Pavel
18.06.2018
17:48:39
Одно не лишнее
ну тут тоже как попрет. оракл у гугла бабки хотел чисто за апи отжать

Igor
18.06.2018
18:00:29

Vladimir
18.06.2018
19:33:37
А скажите, юзал кто Canopy? Что-то не могу разобраться как свичнуться на всплывающее окно
Нашел)

Google

Artem
18.06.2018
21:03:45

Evgeniy
18.06.2018
21:13:01
url компилируется в настоящий CIL литерал, а url2 в статический метод.

Artem
18.06.2018
21:14:23

Evgeniy
18.06.2018
21:15:24
Насколько ты помнишь, гарантируется, что CIL литералы — это константы, и они должны быть заинлайнены во время компиляции.

Artem
18.06.2018
21:16:39

Vlad
18.06.2018
21:16:47

Artem
18.06.2018
21:16:50
почему так не сделали?)

Evgeniy
18.06.2018
21:20:56
А то получится, например, что одни значения, связанные через let, можно использовать в паттерн матчинге, а другие почему-то нет.
В спеке есть хороший пример:
[<Literal>]
let C = 3
match 4 with
| C -> sprintf "matched, C = %d" C
| _ -> sprintf "no match, C = %d" C
Поведение меняется в зависимости от наличия [<Literal>].

Григорий
18.06.2018
21:26:47
какие есть библиотеки под dotnet core для работы с postgre sql? Type Provider еще же не завезли в dotnet core?

Evgeniy
18.06.2018
21:30:24

Григорий
18.06.2018
21:31:37

Vlad
18.06.2018
21:36:22

Evgeniy
18.06.2018
21:43:35

Vlad
18.06.2018
21:44:05
Хм, интересно почему jsonprovider erased тогда
Я несколько огорчился этому факту

Evgeniy
18.06.2018
21:44:30
?♂️