|
2 / 2 / 1
Регистрация: 02.11.2017
Сообщений: 60
|
||||||
Неблокирующая функция15.05.2020, 09:54. Показов 28454. Ответов 94
Метки нет (Все метки)
у меня задача: написать функцию func test(f func(int) int, in1 <-chan int, in2 <- chan int, out chan<- int, n int) в package main.
она n раз сделать следующее 1. прочитать по одному числу из каждого из двух каналов in1 и in2, назовем их x1 и x2. 2. вычислить f(x1) + f(x2) 3. записать полученное значение в out Функция test должна быть неблокирующей, сразу возвращая управление. Функция f может работать долгое время, ожидая чего-либо или производя вычисления. Формат ввода Количество итераций передается через аргумент n. Целые числа подаются через аргументы-каналы in1 и in2. Функция для обработки чисел перед сложением передается через аргумент f. Код на go - вопрос как сделать функцию неблокирующей? в чем у меня ошибка? еще при сборке ругается cannot be extracted via extract ()
0
|
||||||
| 15.05.2020, 09:54 | |
|
Ответы с готовыми решениями:
94
Неблокирующая запись в файл Неблокирующая запись файла
|
|
0 / 0 / 0
Регистрация: 16.04.2017
Сообщений: 2
|
||||||
| 27.05.2020, 20:33 | ||||||
|
Каким образом тривиальное решение типа такого:
В условии ничего не сказано о том в каком порядке должны считываться числа с каналов. Я вижу 3 варианта: содержимое входных каналов для примера: in1: <-1<-2<-3<-4 in2: <-5<-6<-7<-8 1) Считывание без контроля парности: Т.е результатом в out может быть любое паросочетание из in1 и in2: f(1)+f(6) или f(4) + f(7) итд как следствие, в out, результат каждый раз будет случайным и проверить сами значения в тесте невозможно, можно проверить только их количество и время работы. 2) считывание c контролем парности, но без контроля порядка: в out будут записаны: f(2)+f(6) , f(1) + f(5), f(3) + f(7), f(4) + f(8) или те же пары, в любом другом порядке. Значения в out можно протестировать отсортировав их. 3) считывание c контролем парности и контролем порядка в out будут f(1) + f(5), f(2)+f(6), f(3) + f(7), f(4) + f(8) Для первого и второго варианта выдает RE с той самой паникой Третий: WA 0.6сек и 50Мб
0
|
||||||
|
0 / 0 / 0
Регистрация: 27.05.2020
Сообщений: 4
|
|
| 28.05.2020, 09:57 | |
|
Если в out попадает что-то не то или не в свое время выскакивает RE и в stderr видно, что не так.
Я еще попробовал вычисление и вывод засунуть в горутину и заметил, что порядок вывода сбился, значит задержки всетаки есть.
0
|
|
|
0 / 0 / 0
Регистрация: 28.05.2020
Сообщений: 1
|
|
| 28.05.2020, 17:33 | |
|
Пишет аккаунт Школы озона по Го, напоминаю, что списывать запрещено.
0
|
|
|
0 / 0 / 0
Регистрация: 25.05.2020
Сообщений: 12
|
||
| 28.05.2020, 18:19 | ||
|
Пишет человек который по почте вам рассказал про то что задачу обсуждают на форумах, потому что у неё некорректное описание Я это делал в надежде на более конструктивный подход, нежели... это
0
|
||
|
1 / 1 / 0
Регистрация: 25.05.2020
Сообщений: 12
|
|
| 28.05.2020, 19:03 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 12
|
||
| 01.06.2020, 00:07 | ||
|
Ну что, яндекс.контест озона закончился, кто верно решил задачку - напишите хоть как правильно работающая функция то должна выглядеть
![]()
0
|
||
|
1 / 1 / 0
Регистрация: 25.05.2020
Сообщений: 12
|
||
| 01.06.2020, 00:42 | ||
|
(Если сначала заполнить весь хэш, не хватает времени (по крайней мере, при лимите 1 секунда). Если сначала прочитать в массив, не хватает памяти. Это всё на С++, на других языках было ещё хуже, но после "OK" на С++ на других уже не пробовал.)
0
|
||
|
0 / 0 / 0
Регистрация: 27.05.2020
Сообщений: 4
|
|||||||
| 01.06.2020, 08:35 | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 25.05.2020
Сообщений: 6
|
|
| 01.06.2020, 16:58 | |
|
А что насчёт задачи E ? Кто-нибудь добился результата ОК?
0
|
|
|
1 / 1 / 0
Регистрация: 25.05.2020
Сообщений: 12
|
|||||||
| 01.06.2020, 17:40 | |||||||
|
(1) WTF?! Участники могут править свои результаты? (2) Один из моих запусков завершился ошибкой
WTF^2?! Участники могут править и чужие результаты и файлы? (Не знаю, к кому это вопросы: к Озону или Яндексу ¯\_(ツ)_/¯)
0
|
|||||||
|
0 / 0 / 0
Регистрация: 27.05.2020
Сообщений: 4
|
|
| 01.06.2020, 19:05 | |
|
Я тоже Е не осилил.
Когда что-то не то пишеш в выходной канал, выскакивает RE и видно что не так, когда делаешь меньше или больше записей, чем положено, тоже выдает понятную ошибку. Но когда, казалось бы, все верно - пишет WA без описания, входные числа простые, промежуточные данные выводил, все в сходится. Выложите потом сюда решение этой задачи. Ведь авторы теста наверняка чем-то проверяли свои тесты, что-то рабочее должно быть...
0
|
|
|
0 / 0 / 0
Регистрация: 25.05.2020
Сообщений: 6
|
||
| 01.06.2020, 20:30 | ||
|
Ибо также, судя по промежуточным выводам, логика понятна. кто-нибудь использовал runtime.Gosched() ? У меня от этого результат никак не поменялся в плане оценки времени и памяти. Возможно в тесте кривой подсчёт времени, т.к. с задержкой выдаёт всё те же 0.6 сек, если только совсем уж большую поставить - секунд 10, то появляется ошибка IL. По крайней мере у меня так получалось.
0
|
||
|
0 / 0 / 0
Регистрация: 02.06.2020
Сообщений: 2
|
||||||||||||||||
| 03.06.2020, 00:07 | ||||||||||||||||
|
простейшая функция покрытая мьютексом дает IL
Получается что сумма должна выводиться в out в том же порядке в котором поступают данные в in.и И нельзя запускать одновременно две Merge2Channels , потому-что они вызывают мешанину в out. Написал:
Добавлено через 1 час 31 минуту wg.Add(1) перед
0
|
||||||||||||||||
|
1 / 1 / 0
Регистрация: 25.05.2020
Сообщений: 12
|
||
| 03.06.2020, 11:34 | ||
|
например, первый сигнал в первом канале и последний сигнал во втором канале читаются по полторы секунды, а остальные -- очень быстро. Тогда результат превысит три секунды.
0
|
||
|
0 / 0 / 0
Регистрация: 02.06.2020
Сообщений: 2
|
|
| 03.06.2020, 11:56 | |
|
скорее около двух секунд, так как остальные горутины ,при условии что f func(int) int не работает слишком долго, отработают быстро. И чтение первого и последнего сигнала не будет разнесено во времени
Добавлено через 5 минут Хотя да , будет больше 3 секунд)
0
|
|
| 03.06.2020, 11:56 | |
|
Функция поиска в массиве и указатели + функция сортировки и поиск найденного элемента
Функция sqrt: существует более одного экземпляра. Функция перегруженная Перегрузка операций: friend-функция или функция-член класса Какую библиотеку надо подключать чтоб работала функция _getch() и функция cin.get()? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|