|
2 / 2 / 1
Регистрация: 02.11.2017
Сообщений: 60
|
||||||
Неблокирующая функция15.05.2020, 09:54. Показов 28326. Ответов 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
Регистрация: 25.05.2020
Сообщений: 5
|
|
| 25.05.2020, 14:27 | |
|
У меня ещё такая ошибка получаеться
panic: Got 142745 from output channel, should be 83602 [recovered] panic: Got 142745 from output channel, should be 83602 goroutine 38 [running]: panic(0x54d080, 0xc82000a990) /usr/lib/go/src/runtime/panic.go:464 +0x3e6 testing.tRunner.func1(0xc820078090) /usr/lib/go/src/testing/testing.go:467 +0x192 panic(0x54d080, 0xc82000a990) /usr/lib/go/src/runtime/panic.go:426 +0x4e9 _/temp/executing.TestSlowSquare(0xc820078090) /temp/executing/main_test.go:104 +0x61f testing.tRunner(0xc820078090, 0x64c4f8) /usr/lib/go/src/testing/testing.go:473 +0x98 created by testing.RunTests /usr/lib/go/src/testing/testing.go:582 +0x892 make: *** [run] Error 1
0
|
|
|
0 / 0 / 0
Регистрация: 25.05.2020
Сообщений: 6
|
|
| 25.05.2020, 17:15 | |
|
Это значит что ответ на самом деле не тот, что ожидается.
Например, f(x1) == 22, f(x2) == 33, ожидается 55, а Вы передаёте не 55. У меня подобные ошибки возникали, если специально (для теста) выводить в out случайное число, скажем 12345. А по поводу задания, у меня как и у других - WA. при этом 0.6 сек и ~50Mb.
0
|
|
|
0 / 0 / 0
Регистрация: 19.04.2015
Сообщений: 47
|
|
| 25.05.2020, 17:35 | |
|
А какой компилятор вы используете? У них написано в письме "Мы ожидаем решение задачи Е на Go. Для отправки решения на Go используй gcc go, gcc golang."
Я попробовал выбрать язык "gcc go" при отправке, но все равно WA :c
0
|
|
|
0 / 0 / 0
Регистрация: 25.05.2020
Сообщений: 6
|
|
| 25.05.2020, 17:55 | |
|
Отправляю, как указано в примечании к заданию - "Отправлять задачу необходимо под компилятором Make."
Под gc go - CE, под gcc go - RE.
0
|
|
|
117 / 118 / 52
Регистрация: 19.12.2014
Сообщений: 612
|
||||||
| 25.05.2020, 18:00 | ||||||
|
Пробовал такое решение, выдает WA, хотя здесь и включено ожидание получения значений с двух каналов, пока значения не будут полученны, сумма не будет считаться. Что уже не так ума все не приложу
0
|
||||||
| 25.05.2020, 19:07 | |
|
Не по теме: У вас там сессия что ли? Что за наплыв?
0
|
|
|
0 / 0 / 0
Регистрация: 25.05.2020
Сообщений: 5
|
|
| 25.05.2020, 19:16 | |
|
Я это понял, всякие разные ошибки уже были. Но возвращается сумма f(int) .. я думал может функция ожидает результат в том же порядке в котором она отправляла данные, а приходят в разброс
0
|
|
|
117 / 118 / 52
Регистрация: 19.12.2014
Сообщений: 612
|
|
| 25.05.2020, 19:18 | |
|
korvin_, да это задание на яндекс контесте, я уже просто из принципа хочу добиться верного ответа, почему же мое решение не подходит.
0
|
|
|
0 / 0 / 0
Регистрация: 25.05.2020
Сообщений: 5
|
|
| 25.05.2020, 19:20 | |
|
а F. Сумма двух
у всех верно получилось ? У меня два теста ок а на третьем тесте падает в неверный ответ...
0
|
|
|
117 / 118 / 52
Регистрация: 19.12.2014
Сообщений: 612
|
|
| 25.05.2020, 19:22 | |
|
aoanima, ну там вообще изи, просто задание внимательней прочитай, там может быть до 1000 цифр в одном числе
0
|
|
|
0 / 0 / 0
Регистрация: 23.05.2020
Сообщений: 8
|
|
| 25.05.2020, 21:04 | |
|
Neko-neko, TL у тебя потому что ты ждёшь пустой канал. По крайней мере разницы с закрытием я не заметил. Сам использовал канал вместо мапы. Похоже что при WA и TL система пишет TL. Уже всё перепробовал, походу WA никак не побороть
0
|
|
|
1 / 1 / 0
Регистрация: 25.05.2020
Сообщений: 12
|
|||
| 26.05.2020, 07:08 | |||
|
korvin_, это всё про Ozon объявил о запуске бесплатной школы программирования на Go (на этом форуме видел и решение про SQL-запрос из того же задания ¯\_(ツ)_/¯).
Добавлено через 7 минут
А время в отчёте: 2.081s, 2.082s -- выходит за 2 секунды (Память в допустимых пределах: 49-50 Mb). Почему в мэп, а не в канал: а вдруг f(x_1) выполняется за 1.5 секунды, а f(x_2) - за одну. Тогда если выполнять по очереди, получится 2.5 секунды, а если параллельно и писать в канал, результаты будут в другом порядке.
0
|
|||
|
117 / 118 / 52
Регистрация: 19.12.2014
Сообщений: 612
|
|
| 26.05.2020, 07:40 | |
|
Neko-neko, по моему у них там пиздец какие типы тесты пишут, вчера два идентичных решения выдавали разные ошибки
0
|
|
|
0 / 0 / 0
Регистрация: 25.05.2020
Сообщений: 6
|
|
| 26.05.2020, 09:02 | |
|
Результат компиляции выдаёт одно и то же для WA:
stdout: '/temp/compiling/source' cannot be extracted via extract () /bin/sh ./build.sh stderr:
0
|
|
|
1 / 1 / 0
Регистрация: 25.05.2020
Сообщений: 12
|
|
| 26.05.2020, 09:11 | |
|
pve, он всегда это выдаёт.
0
|
|
|
0 / 0 / 0
Регистрация: 19.05.2020
Сообщений: 11
|
||
| 26.05.2020, 10:02 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 25.05.2020
Сообщений: 12
|
||||||
| 26.05.2020, 11:58 | ||||||
|
lokilo, сегодня они вообще что-то сломали?
runtime-error, Stderr:
Кстати, организаторы упоминают "подробные и конструктивные комментарии", на которые они отвечают. Я не заметил, куда их можно слать (кроме как на э-почту). Ещё интересно, можно ли самому писать в Stderr? Или туда идёт только выдача их bash-скрипта?
0
|
||||||
|
|
||||||
| 26.05.2020, 12:54 | ||||||
|
У вас всех неправильные суммы из-за конкурентного доступа к одной переменной разных горутин.
Используйте для атомарной инкрементации
0
|
||||||
|
0 / 0 / 0
Регистрация: 25.05.2020
Сообщений: 6
|
|
| 26.05.2020, 13:29 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 23.05.2020
Сообщений: 8
|
|
| 26.05.2020, 14:16 | |
|
Neko-neko, Я имел ввиду что ты ждёшь когда из выходного всё прочитают, потом закрываешь, поэтому TL. Порядок можно сохранить если в канал писать например слайс с результатом и итерацией
Garry Galler, Ты уверен? Проверял решение своё?
0
|
|
| 26.05.2020, 14:16 | |
|
Функция поиска в массиве и указатели + функция сортировки и поиск найденного элемента
Функция sqrt: существует более одного экземпляра. Функция перегруженная Перегрузка операций: friend-функция или функция-член класса Какую библиотеку надо подключать чтоб работала функция _getch() и функция cin.get()? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|