Форум программистов, компьютерный форум, киберфорум
D (DLang)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.96/71: Рейтинг темы: голосов - 71, средняя оценка - 4.96
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446

Как быстро проверить массив на наличие равных элементов

05.02.2015, 22:17. Показов 15536. Ответов 51

Студворк — интернет-сервис помощи студентам
Можно написать такую функцию:
C++
1
2
3
4
5
6
int busy(int j) {
    foreach (i; 0 .. j)
        if (a[i] == a[j])
            return 0;
    return 1;
}
Но меня интересует: есть ли в D уже готовые функции, которые возвращают 0/1 или индексы равного элемента одинаковых элементов массива.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.02.2015, 22:17
Ответы с готовыми решениями:

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

Проверить наличие в нем хотя бы двух равных между собой элементов
Здраствуйте! Задано массив A ( n ) . Проверить наличие в нем хотя бы двух равных между собой элементов . Немогу написать код.Написал,...

Проверить массив на наличие нулевых элементов, в первый из этих элементов записать число
Мне нужно проверить массив на наличие в нем элементов со значением 0. А потом в первый из этих элементов со значением 0 записать число.

51
09.03.2015, 00:29  [ТС]
Студворк — интернет-сервис помощи студентам

Не по теме:

Ev_Hyper, создал на официальном форуме D тему про string-int[] array, так они до сих пор там помнят про священные войны на D :D:

OP is fighting a loosing battle in flame war on some obscure forum. F#
enthusiast trolls OP into solving stupid puzzles that are trivial in F#
(or any ML-family language) and clumsy in C-family languages.

In language holy wars the only winning move is not to play.
Сейчас тему про find()/remove() создам. Они опять подумают, что это священные войны.

0
Заблокирован
09.03.2015, 00:52
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Не знаю. Спрошу на официальном форуме. Может быть, и нормальное. А, может быть, и нет. Ведь D до сих пор находится в активной разработке.
Dennis Ritchie, Такое поведение не нормально. Это довольно серъезная ошибка. Возможно я нарушил какое-то правила языка D, поэтому и решил уточнить. Теперь буду ждать ответа специалистов с оф. форума.

Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Они опять подумают, что это священные войны.
Силу ЯП определяют те, кто на нем пишут. Так что в решениях "задач" "выиграет" тот, на чьей стороне более опытные программисты. Так какой критерий сравнения ЯП можно считать справедливым?
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.03.2015, 01:28  [ТС]
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Возможно я нарушил какое-то правила языка D, поэтому и решил уточнить.
Да, как я и думал, правильно нужно писать так (поведение абсолютно нормальное):
C++
1
writeln(find(a = remove(a, 1), 5).length != 0);
Предварительно сохранив массив a в другом массиве.
Yes it is normal, there are two potential points of confusion:
- remove mutates the input range and returns a shortened slice to
the range which excludes the removed element.
- remove takes an index as its second argument, not an element.
Как я понял, дело связано с указателями.
Yes, works as designed. `remove` writes over removed slots and
returns shrunk (shrinked?) slice. It does not shrink the range at
the call site. To update `a`, write the result of `remove` to it:
C++
1
writeln(find(a = remove(a, 1), 5).length != 0);
Добавлено через 11 минут

Не по теме:

Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Так какой критерий сравнения ЯП можно считать справедливым?
Силу ЯП определят более опытный программист и сам ЯП.
Вот вам простой пример:
Вы, конечно, можете начать утверждать, что Java/C# и т. д. сильнее/мощнее, чем C++. Но я же знаю: какие языки затачивали под загребание денег, а какие для людей, которые просто любят программирование. И тут бесполезно оправдываться.

0
Заблокирован
09.03.2015, 01:41
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Да, как я и думал, правильно нужно писать так
Dennis Ritchie, в таком случае вы изменяете исходный массив, что может привести к непредвиденным результатам. Не советую так делать.

Не по теме:


Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Вы, конечно, можете начать утверждать, что Java/C# и т. д. сильнее/мощнее, чем C++.
Dennis Ritchie, вы так и не поняли моего сообщения. И на поставенный вопрос не ответили.

Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Но я же знаю: какие языки затачивали под загребание денег, а какие для людей, которые просто любят программирование.
Не знаете. Вы не программировали ни на C#, ни на Java

0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.03.2015, 01:47  [ТС]
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
в таком случае вы изменяете исходный массив, что может привести к непредвиденным результатам.
Конечно, так как я писал, писать нельзя (я ещё не читал полностью книгу Александреску, поэтому могу написать что-нибудь неправильное).
Можно написать так, например:
C++
1
2
3
4
auto a = [5, 2, 6, 8];
auto b = a.dup;
writeln(find(a = remove(a, 1), 2).length != 0);
writeln(b);

Не по теме:

Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Не знаете. Вы не программировали ни на C#, ни на Java
На Java программировал немного. Сразу же понял, что этот язык создан для буржуев.
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
вы так и не поняли моего сообщения. И на поставенный вопрос не ответили.
Уже ответил в соответствующей теме.

0
Заблокирован
09.03.2015, 01:51
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Можно написать так, например:
Я бы удалял копию коллекции, а не исходную. Так в дальнейшем не будет путаницы.

Не по теме:


Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Уже ответил в соответствующей теме.
Если вы считаете это ответом

0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.03.2015, 01:54  [ТС]
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Я бы удалял копию коллекции, а не исходную.
Не понял.
0
Заблокирован
09.03.2015, 02:03
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Не понял.
Java
1
2
3
4
auto a = [5, 2, 6, 8];
auto b = a.dup;
writeln(find(b = remove(b, 1), 2).length != 0);
writeln(a);
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.03.2015, 02:06  [ТС]
Ev_Hyper, ОК.
0
09.03.2015, 09:02

Не по теме:

Дорогой Dennis Ritchie, все это доказывает только одно - что я вас сильно задел. Ну подумайте сами: олимпиадник по русскому языку пишет на русском косноязычно. Что стоят его пятерка по русскому? Не помню уже какой классик написал примерно так: "Имеющему мускус в кармане нет необходимости об этом громко заявлять. Запах все доказывает". Так и с вами, мой юный оппонент. Не ленитесь подбирать слова - и никто вас не заподозрит в безграмотности.

0
09.03.2015, 10:25  [ТС]

Не по теме:

Цитата Сообщение от Catstail Посмотреть сообщение
Не ленитесь подбирать слова - и никто вас не заподозрит в безграмотности.
Я же вам сказал, что грамотность в интернете - это шоры.
И не собираюсь я вам больше ничего доказывать. Вы придумали какую-то странную гипотезу, что меня задели. А теперь тыкаетесь: "А я тебя задел; а нет, я тебя очень сильно задел... Я тебе не верю, ты врёшь. Я тебя задел." Смотрится очень смешно.

0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38160 / 21095 / 4306
Регистрация: 12.02.2012
Сообщений: 34,677
Записей в блоге: 14
09.03.2015, 10:35

Не по теме:

Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Смотрится очень смешно.
- Вы пишете безграмотно, и при этом доказываете, что в школе были отличником. Действительно смешно.

Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
И не собираюсь я вам больше ничего доказывать.
- я ждал этого заявления... Оно всегда следует, когда у оппонента отсутствуют аргументы. "грамотность в интернете - это шоры" - на отстойных сайтах может быть что угодно. Но лицо Интернета создают не отстойные сайты.



Короче: беру вас под личный контроль. Неряшливое изложение мыслей будет пресекаться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.03.2015, 10:35
Помогаю со студенческими работами здесь

Проверить двумерный массив на наличие отрицательных элементов
Если в массиве есть хоть один отрицательный элемент, нужно, чтоб на экран вывелось сообщение "You have negative elements in your...

Проверить массив на наличие в нем положительных элементов
Здравствуйте, дорогие форумчане. Помогите с программой. Условие: переписать положительные элементы массива x, до последнего вхождения...

Проверить массив на наличие в нем элементов со значениями 25 и 45
Написать программу на языке VBA, которая проверяет массив элементов M(i), в котором 30 значений, на наличие в нем элементов со значениями...

Как проверить весь массив на наличие строки?
Как проверить весь массив на наличие строки? если строки нету- записать Добавлено через 14 минут строка всегда динамическая string...

Как проверить массив на наличие имен с базы mysql
У меня есть база в mysql names, состоящая из 30 имен, и есть массив massnames, в котором 5 имен. Как сделать, чтобы данные с базы смерялись...


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

Или воспользуйтесь поиском по форуму:
52
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru