Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
bandit777

В матрице найти число элементов, кратных k

16.06.2009, 08:33. Показов 5010. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для целочисленной квадратной матрицы найти число элементов, кратных k, и наибольший из них
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.06.2009, 08:33
Ответы с готовыми решениями:

Функции и процедуры. Подсчитать число нулевых элементов для матриц a(n,m) и b(m,n),где m=3,n=4.
Подсчитать число нулевых элементов для матриц a(n,m) и b(m,n),где m=3,n=4.я короче ваще нуб!тем более я курсант времени не хватает и препод...

Найти наибольший из элементов матрицы, имеющих нечетные индексы
задан двумерный массив. найти наибольший из элементов массива, имеющих нечетные индексы

Блок-схема. В данной действительной матрице порядка N*N. Найти строки(столбцы), элементы которых упрядочены по возрастанию.
В данной действительной матрице порядка N*N. Найти строки(столбци) элементы которых упрядочины по возрастанию! Завтра экзамен,а из-за...

34
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,223
Записей в блоге: 2
21.03.2025, 16:11
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от abit Посмотреть сообщение
действительно имеет высокий порог вхождения, ну уверяю он того стоит!
Понимаю что такие языки создавали не дураки, по меньшей мере какой-то пакет/запас идей был. Но пока не видел удачной демонстрации силы таких языков. Аргументы звучат неубедительно, напр
Цитата Сообщение от abit Посмотреть сообщение
Люди читают десятки книг про всякие атомик-операции, паттерны, симофоры, voltile и мьютексы, и это только в многопоточности, а в Rust вам достаточно подключить один трейт в cargo и компилятор ударит по рукам если что-то не так, и так всегда - почти всё там сделано именно по идеалу, не нужно читать кучу ложных путей, язык почти не позволит вам написать ерунду, только если специально стараться, там на уровне языка от тебя хотят хороший стиль
Впечатление что Вы переживаете "конфетно-букетный" период Но за ним будут суровые/серые будни, и кто знает, может бабочка упорхнет на новый (еще более прекрасный) цветок Жизненный опыт учит что "за все надо платить". Возможно поддержка multi-threading там действительно хороша, но смириться с ограничениями придется. Так всегда бывает если "за меня что-то делают" (пусть и хорошо). Вы так и не ответили насчет достигаемой масштабируемости.

Да, и критиковать плюсы на убогой/дебильной задаче стартового поста - явно неудачная затея. Это не то место где прогрессивные идеи должны показывать свою силу. Придумайте пример поудачнее - тогда обсудим
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,884
26.03.2025, 05:00
Цитата Сообщение от Igor3D Посмотреть сообщение
Впечатление что Вы переживаете "конфетно-букетный" период Но за ним будут суровые/серые будни, и кто знает, может бабочка упорхнет на новый (еще более прекрасный) цветок
ну тут как посмотреть, для С++ такого периода не было, вообще, это было жёстко, я не зря привёл пример с std::initializer_list<T>, там чёрт ногу сломит когда и какой конструктор будет вызываться, если пишешь что-то такое на С++ - это считай ты зарядил дробовик направил себе в колено!
и чем больше я погружался в это всё тем больше мне казалось что они специально так делают чтобы никто ничего не понял))) на этом фоне языки типа Haskell, Erlang или Rust выгодно отличаются, там всегда знаешь чего ожидать

опять же я вам привёл конкретные примеры что C++ хуже чем Rust на примерах что вы сами дали, не оставив С++ ни единого шанса...

думаю сравнивать с Фортраном не имеет смысла?

хотя чего, разнесём и Фортран!
Цитата Сообщение от WH Посмотреть сообщение
if (b/=0) then !Если такие элементы есть, то выведем максимальный из них
b = maxval (a, mod(a,k)==0)
это очевидно UB, если кратных элементов нет (b = 0), maxval с маской вернет минимальное значение integer, код на Rust разделят случаи есть элементы или нет

Fortran
1
b = count(mod(a, k) == 0)
ВНИМАНИЕ!!! ВАРНИНГ!!! АХТУНГ!!! АТТЕНШЕН!!! УВАГА!!! Поведение mod в Fortran для отрицательных чисел зависит от реализации, Rust гарантирует, что a % b имеет знак делителя b

Fortran
1
integer :: b, a(3,3)
опять знаковая переменная для размера, возможны переполнения

Fortran
1
b = count(mod(a,k) == 0)
очевидно код не распараллелен, приведённый нами код на C++ и Rust может исполняться параллельно) правда с одним нюансом в случае C++ приёдтся подумать а не будет ли гонка данных, юз афте фри, висячие ссылки, утечки памяти и прочая ерунда, в случае Rust - если скомпилировалось, то не парься

давайте ещё код решения этой задачи на своих любимых языках, расскажу почему Rust лучше)

Добавлено через 1 час 29 минут
p.s. я вообще не говорю что Rust это альфа и омега и остальные языки не нужны, все нужно, я лишь намекаю что если вы поймёте примеры как написать на Rust простые вещи, то вы по другому начнёте писать на своих языках, качественнее и без ошибок, если ты это можешь написать на Rust, то скорее всего ты это корректно напишешь на чём угодно и не встретишь внезапно UB

наверное стоит отослать к этому пример, не сочтите за рекламу, там по фактам

0
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,223
Записей в блоге: 2
26.03.2025, 15:25
Цитата Сообщение от abit Посмотреть сообщение
давайте ещё код решения этой задачи на своих любимых языках, расскажу почему Rust лучше)
А зачем "лучше"? Помню в разговоре о boost понравилась реплика типа
Если все хорошо решается и без этой вещи - значит эта вещь и не нужна
Стартовую задачу можно решать на любом языке - и везде успешно, никаких проблем ни у кого нет. Ну и зачем тогда чудесный язык?
Цитата Сообщение от abit Посмотреть сообщение
в случае C++ приёдтся подумать а не будет ли гонка данных, юз афте фри, висячие ссылки, утечки памяти и прочая ерунда
Ну для данной тупой задачи ничего этого нет. А вообще - да, есть такие (перечисленные) минусы, но они никогда не считались/рассматривались как серьезная проблемы. То же и со "сборщиком мусора" которым вечно пытаются тыкать в нос. Тоже мне, шедевр инженерной мысли.

Рассмотреть какую-то др задачу(и), более содержательную? Когда-то пробовал для Haskell, ничего не вышло. Дело упирается "собсно в задачу" (а не в язык). Давайте попробуем зайти с др стороны: организация базовых данных.

Вот данные полигонной 3D модели. Не все, те что есть всегда. Их может быть много (миллионы)

1) Вертексы. Каждый вертекс - это как минимум 3D координата (x, y, z) плюс любое число "атрибутов" (практически всегда нормали, часто UV, иногда цвет и др). Нюансы с атрибутами опускаем

2) Фейсы (они же индексы и.т.п). Малограмотные молодые люди спешат заявить "только треугольники !!", но это не так. Фейс может содержать от 1 до 4 индексов, а также могут поддерживаться "complex polygons" у которых >= 5 индексов, ну это опустим для простоты. Каждый индекс соответствует вертексу в контейнере

На плюсах все хранят это в виде std::vector (ов). Да, это отнюдь не идеальное решение. Удаление и вставка в std::vector работает медленно и делает адреса/итераторы на элементы невалидными, причина массы ошибок/UB. Иногда удается отмазаться типа "эти данные red-only, редактирования нет". Но не всегда

И вот у нас крутой язык. Что он нам здесь дает? Можно ли построить данные лучше/эффективнее?
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,884
28.03.2025, 01:38
Цитата Сообщение от Igor3D Посмотреть сообщение
И вот у нас крутой язык. Что он нам здесь дает?
а вы не читали, открываем текущие уязвимости UAF, вот это всё найдено за последнее время в проектах типа GLPI, Microsoft Office, Linux kernel, Acrobat Reader, Foxit PDF Reader, Windows, зачастую даёт полный доступ к системе и возможность выполнить любой код - "allows an unauthorized attacker to execute code locally", "This vulnerability allows remote attackers to execute arbitrary code", увлекательно, тысячи багов только за 2 месяца 2025-го, а Rust в принципе не даёт возможности собрать такой код, только если специально стараться


Вообще вы мне пока не дали ни одного кода на любом языке где я бы не нашёл бага, даже на простой задаче, в моём коде Rust вы багов не нашли, подумайте над этим)
0
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,223
Записей в блоге: 2
28.03.2025, 02:45
Цитата Сообщение от abit Посмотреть сообщение
а вы не читали, открываем текущие уязвимости UAF
Не читал, и это не входит в мои планы, нет таких задач/необходимости.
Цитата Сообщение от abit Посмотреть сообщение
Вообще вы мне пока не дали ни одного кода на любом языке где я бы не нашёл бага, даже на простой задаче, в моём коде Rust вы багов не нашли, подумайте над этим)
Лично я никакого кода не давал. А подумал я совсем о другом
Возиться с нашими вертексами/фейсами этот товарищ точно не будет, такая работа не для него. Он увлечен чудесным миром идей/концепций. Имеет право, каждому свое
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,884
28.03.2025, 05:25
Цитата Сообщение от Igor3D Посмотреть сообщение
Лично я никакого кода не давал. А подумал я совсем о другом
я так и понял что у вас никаких аргументов нет)
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
01.04.2025, 17:56
Цитата Сообщение от abit Посмотреть сообщение
давайте ещё код решения этой задачи на своих любимых языках, расскажу почему Rust лучше)
Code
1
2
3
4
5
6
7
8
9
NB. Даны матрица и число k
m=. i. 5 5
k=. 7
echo k ; m
 
NB. Выводим число элементов, кратных k, и наибольший из них
echo (#;>./) ((0= k&|)#[) ,m
 
exit ''
Запустить можно здесь: https://www.jdoodle.com/execute-jlanguage-online
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,884
04.04.2025, 23:52
Shamil1,
хорошая попытка, но нет, я, конечно не спец по J, но всё же...

1) динамическая типизация, это всё, сразу крест на нормальном, контролируемом, системном программировании, типизация J может приводить к неявным преобразования, ну например если k дробное, Rust имеет строгую типизацию, настолько строгую что просто так не позволит привести i32 к i64, не то что дробное к целому неявно

2)
Цитата Сообщение от Shamil1 Посмотреть сообщение
(#;>./) ((0= k&|)#[) ,m
эта штука точно может различить между "нет элементов" и "есть элементы"? я попробовал по вашей ссылке, для матрицы без кратных k элементов J вернет __, Rust этим не страдает

3) Ваш код выполняется последовательно, это неэффективно, наши варианты на Rust и C++ лишены этого недостатка, можете сами прогнать матрицы скажем 10000x10000

4) та же проблема с отрицательными числами, что я описывал два раза выше, проверил в онлайн компиляторе по вашей ссылке, поведение для отрицательных чисел отличается
-60 % 7 в Rust = -4 (так как 7 * (-9) = -63, -60 - (-63) = 3

5)
0= k&|
ну деление на ноль, если k=0 )

И это при том что я нифига не знаю ни J ни APL, вот сразу навскидку говорю что такое лучше запускать где-то на виртуальной машине в вакууме и не доверять такому языку ничего дороже 1 доллара и трогать устройство запрограммированное на J я бы не стал и пятиметровой палкой
1
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
06.04.2025, 00:26
Цитата Сообщение от abit Посмотреть сообщение
динамическая типизация, это всё, сразу крест
Вы описываете проблему слабой типизации, а не динамической. Я тоже не люблю слабую типизацию.

Цитата Сообщение от abit Посмотреть сообщение
эта штука точно может различить между "нет элементов" и "есть элементы"?
Да.

Цитата Сообщение от abit Посмотреть сообщение
Ваш код выполняется последовательно, это неэффективно
Почему Вы так решили? Например, один и тот же С++ код из примера выше выполняется последовательно или параллельно, в зависимости от директив компилятору.
J - это высокоэффективный, производительный язык, предназначенный для работы с огромными объёмами данных.

Цитата Сообщение от abit Посмотреть сообщение
поведение для отрицательных чисел отличается
Если поведение с отрицательными числами в J и Rust отличается, то почему это проблема J, а не Rust?
Существует несколько вариантов деления. Например, в Haskell есть две пары операторов деления: div+mod (к минус бесконечности) и quot+rem (к нулю).

Цитата Сообщение от abit Посмотреть сообщение
ну деление на ноль, если k=0 )
Это не приводит к ошибке (исключению).

Цитата Сообщение от abit Посмотреть сообщение
не доверять такому языку ничего дороже 1 доллара
Это Вы зря. Язык используется для очень серьёзных вещей. Особенно его платная разновидность - K.
Единственно, что в нём дурацкого - это название, чрезвычайно затрудняющее поиск информации.

Цитата Сообщение от abit Посмотреть сообщение
я, конечно не спец по J
Я тоже. Потратил один день на ознакомление специально для сообщения на форуме.
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,884
07.04.2025, 00:40
Цитата Сообщение от Shamil1 Посмотреть сообщение
J - это высокоэффективный, производительный язык, предназначенный для работы с огромными объёмами дан
можете просто пустить матрицу 10000x10000 через наши блейзинг программы Rust и C++ и через свой "высокоэффективный, производительный язык"
думаю результаты вас удивят
и я это сделал) разница в сотни раз по производительности

Добавлено через 2 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
Да.
думаю нет)

Добавлено через 13 минут
на вашем месте я бы поборолся за Haskell, там есть шансы за счёт строгой типизации, J - язык бесполезный
0
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,223
Записей в блоге: 2
09.04.2025, 12:11
Shamil1, а тот же вопрос, с точки зрения Haskell ?
Кликните здесь для просмотра всего текста
Цитата Сообщение от Igor3D Посмотреть сообщение
Давайте попробуем зайти с др стороны: организация базовых данных.
Вот данные полигонной 3D модели. Не все, те что есть всегда. Их может быть много (миллионы)
1) Вертексы. Каждый вертекс - это как минимум 3D координата (x, y, z) плюс любое число "атрибутов" (практически всегда нормали, часто UV, иногда цвет и др). Нюансы с атрибутами опускаем

2) Фейсы (они же индексы и.т.п). Малограмотные молодые люди спешат заявить "только треугольники !!", но это не так. Фейс может содержать от 1 до 4 индексов, а также могут поддерживаться "complex polygons" у которых >= 5 индексов, ну это опустим для простоты. Каждый индекс соответствует вертексу в контейнере

На плюсах все хранят это в виде std::vector (ов). Да, это отнюдь не идеальное решение. Удаление и вставка в std::vector работает медленно и делает адреса/итераторы на элементы невалидными, причина массы ошибок/UB. Иногда удается отмазаться типа "эти данные red-only, редактирования нет". Но не всегда

И вот у нас крутой язык. Что он нам здесь дает? Можно ли построить данные лучше/эффективнее?
Понимаю что дело может быть "и не в языке", для таких задач все везде примерно одинаково. Данные простые, но их может быть много (миллионы), выдумывать "нечто особенное" нет оснований т.к. нет устойчивого применения. Хотя не все так уж просто, напр есть разные "стратегии" хранения атрибутов. Да, и, надеюсь, крутые языки обеспечивают минимальный расход памяти (как std::vector) ?
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
11.04.2025, 14:55
Цитата Сообщение от Igor3D Посмотреть сообщение
а тот же вопрос, с точки зрения Haskell ?
Я не знаю, что такое вертексы и фейсы, для чего они нужны и как используются. Поэтому не могу сказать, как лучше объявить эти типы.

В C++ объявление типа - один файл. В Haskell объявление типа - одна строка. Поэтому в Haskell активно создаются новые типы под конкретную задачу.
0
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,223
Записей в блоге: 2
11.04.2025, 19:24
Цитата Сообщение от Shamil1 Посмотреть сообщение
Я не знаю, что такое вертексы и фейсы, для чего они нужны и как используются. Поэтому не могу сказать, как лучше объявить эти типы.
Помните мультик про деда Мороза
Темнота - лета не знает!
Наверно Вы имели ввиду "не знаю и знать не хочу!". Тогда ладно, вопрос снимается
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
12.04.2025, 17:04
Цитата Сообщение от Igor3D Посмотреть сообщение
Вы имели ввиду "не знаю и знать не хочу!"
Примерно так. У меня нет времени изучить всё. Приходится расставлять приоритеты.
0
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,293
Записей в блоге: 3
22.04.2025, 15:26
Цитата Сообщение от abit Посмотреть сообщение
ВНИМАНИЕ!!! ВАРНИНГ!!! АХТУНГ!!! АТТЕНШЕН!!! УВАГА!!! Поведение mod в Fortran для отрицательных чисел зависит от реализации, Rust гарантирует, что a % b имеет знак делителя b
Много заглавных букв, конечно. Но вообще в Фортране для этого есть modulo.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.04.2025, 15:26

Найти в каждой строке матрицы максимальные и минимальные элементы и поменять их местами
Дано матрица. Найти каждый строке матрицы максимальные и минимальные элементы и поменят его местами

Найти сумму элементов второй строки заданной матрицы
Дан двумерный массив B, состоящий из N строк и M столбцов. Найти сумму элементов второй строки массива.

В заданной матрице найти произведение положительных элементов, стоящих выше главной диагонали (нужна блок-схема к коду)
Добрый день. Я написал программу, состоящая из подпрограмм, для задачи: Даны матрицы A (4×4), B (5×5), C (3×3)....

В массиве размером NxN найти наименьшее число и обнулить все элементы
Помогите решить задачу с объяснениями. Комбинированные алгоритмические структуры: В массиве размером NxN найти наименьшее число и...

Найти позицию элемента матрицы при циклическом сдвиге по спирали на x
Есть задача: Необходимо выполнить сдвиг элементов матрицы n на m на x позиций по спирали, закрученной по часовой стрелке от левого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Новые блоги и статьи
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru