JL Julia  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Broadcasting и точечные операции

Проверяет базовое понимание темы «Broadcasting и точечные операции»: чтение фрагментов, выбор корректной конструкции и объяснение результата без опоры на угадывание. Вопросы требуют читать код, находить границу применимости, выбирать проверяемую правку и отличать свойства Julia от поведения конкретного пакета. В тесте 20 вопросов: 12 заданий с кодом и 8 заданий с математической записью. Все формулировки рассчитаны на Julia 1.12.6; для сторонних библиотек используется явно названный API.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На работу отведено 55 минут. После завершения откроются правильные ответы, объяснения и результаты по темам.
Вопрос 1 из 20
Какой механизм Julia определяет поведение строки `@show f.(x, y)`?
Y_{ij}=f(X_i,Z_j)
JuliaJulia · Точечная запись
f(x, y) = x^2 + y
x = [1, 2, 3]
y = reshape([10, 20], 1, 2)
@show f.(x, y)
Вопрос 2 из 20
Какую проверку стоит добавить для участка с `@show f.(x, y)`?
JuliaJulia · Точечная запись
f(x, y) = x^2 + y
x = [1, 2, 3]
y = reshape([10, 20], 1, 2)
@show f.(x, y)
Вопрос 3 из 20
Что должно остаться истинным после рефакторинга участка с `@show f.(x, y)`?
JuliaJulia · Точечная запись
f(x, y) = x^2 + y
x = [1, 2, 3]
y = reshape([10, 20], 1, 2)
@show f.(x, y)
Вопрос 4 из 20
После обновления Julia или пакета поведение участка с `@show f.(x, y)` изменилось. Какой критерий приёмки остаётся корректным?
Y_{ij}=f(X_i,Z_j)
Вопрос 5 из 20
Что следует сообщить пользователю библиотеки о поведении `@show f.(x, y)`?
Вопрос 6 из 20
Какое утверждение точнее всего объясняет участок с `y .= @. sin(x)^2 + cos(x)^2`?
y_i=g(h(x_i))
JuliaJulia · Слияние точечных операций
x = rand(1000)
y = similar(x)
y .= @. sin(x)^2 + cos(x)^2
@show maximum(abs.(y .- 1))
Вопрос 7 из 20
Какую проверку стоит добавить для участка с `y .= @. sin(x)^2 + cos(x)^2`?
JuliaJulia · Слияние точечных операций
x = rand(1000)
y = similar(x)
y .= @. sin(x)^2 + cos(x)^2
@show maximum(abs.(y .- 1))
Вопрос 8 из 20
Какое решение устраняет риск вокруг `y .= @. sin(x)^2 + cos(x)^2`, не меняя поведение на допустимых данных?
JuliaJulia · Слияние точечных операций
x = rand(1000)
y = similar(x)
y .= @. sin(x)^2 + cos(x)^2
@show maximum(abs.(y .- 1))
Вопрос 9 из 20
Как проверить, что новая реализация `y .= @. sin(x)^2 + cos(x)^2` не изменила обещанное пользователю поведение?
y_i=g(h(x_i))
Вопрос 10 из 20
Что следует сообщить пользователю библиотеки о поведении `y .= @. sin(x)^2 + cos(x)^2`?
Вопрос 11 из 20
Какой механизм Julia определяет поведение строки `A = reshape(1:6, 3, 2)`?
(m,1)\oplus(1,n)\to(m,n)
JuliaJulia · Размерности
A = reshape(1:6, 3, 2)
b = [10, 20, 30]
c = reshape([100, 200], 1, 2)
@show A .+ b A .+ c
Вопрос 12 из 20
Какую проверку стоит добавить для участка с `A = reshape(1:6, 3, 2)`?
JuliaJulia · Размерности
A = reshape(1:6, 3, 2)
b = [10, 20, 30]
c = reshape([100, 200], 1, 2)
@show A .+ b A .+ c
Вопрос 13 из 20
Что должно остаться истинным после рефакторинга участка с `A = reshape(1:6, 3, 2)`?
JuliaJulia · Размерности
A = reshape(1:6, 3, 2)
b = [10, 20, 30]
c = reshape([100, 200], 1, 2)
@show A .+ b A .+ c
Вопрос 14 из 20
Какой результат приёмочного теста подтвердит корректность участка с `A = reshape(1:6, 3, 2)`?
(m,1)\oplus(1,n)\to(m,n)
Вопрос 15 из 20
Как сформулировать границу механизма `A = reshape(1:6, 3, 2)` без чрезмерного обещания?
Вопрос 16 из 20
Какое объяснение для `Base.broadcastable(b::Batch) = Ref(b)` выдержит проверку на другом допустимом входе?
\operatorname{axes}(\operatorname{broadcast}(f,x))=\mathcal{A}
JuliaJulia · Пользовательский broadcast
struct Batch{T}
    rows::Vector{T}
end
Base.broadcastable(b::Batch) = Ref(b)
combine(b::Batch, x) = length(b.rows) + x
@show combine.(Batch([1, 2, 3]), 10:12)
Вопрос 17 из 20
Какую проверку стоит добавить для участка с `Base.broadcastable(b::Batch) = Ref(b)`?
JuliaJulia · Пользовательский broadcast
struct Batch{T}
    rows::Vector{T}
end
Base.broadcastable(b::Batch) = Ref(b)
combine(b::Batch, x) = length(b.rows) + x
@show combine.(Batch([1, 2, 3]), 10:12)
Вопрос 18 из 20
Что должно остаться истинным после рефакторинга участка с `Base.broadcastable(b::Batch) = Ref(b)`?
JuliaJulia · Пользовательский broadcast
struct Batch{T}
    rows::Vector{T}
end
Base.broadcastable(b::Batch) = Ref(b)
combine(b::Batch, x) = length(b.rows) + x
@show combine.(Batch([1, 2, 3]), 10:12)
Вопрос 19 из 20
После обновления Julia или пакета поведение участка с `Base.broadcastable(b::Batch) = Ref(b)` изменилось. Какой критерий приёмки остаётся корректным?
\operatorname{axes}(\operatorname{broadcast}(f,x))=\mathcal{A}
Вопрос 20 из 20
Какое ограничение стоит прямо указать в документации к участку с `Base.broadcastable(b::Batch) = Ref(b)`?

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу