0 / 0 / 0
Регистрация: 18.04.2013
Сообщений: 10

Обычная и симметрическая разность упорядоченных массивов

23.04.2013, 01:51. Показов 2892. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить еще пару заданий, очень нужно)

Даны два упорядоченных числовых массива A и B размерами M и N соответственно. Написать функции, которые возвращают:
1) разность массивов - все элементы A, не входящие в B (пример [1,2,3,3,3,4,5,6] \ [0,2,2,3,3,4,5,7,8,9] -> [1,6]);
2) симметрическую разность - все элементы A и B, которые не принадлежат одновременно обоим массивам
(пример [1,2,3,3,3,4,5,6] Δ [0,2,2,3,3,4,5,7,8,9] -> [0,1,6,7,8,9]).
В возвращаемых массивах элементы не должны повторяться, даже если элементы в исходных массивах повторяются.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.04.2013, 01:51
Ответы с готовыми решениями:

Симметрическая разность двух массивов
Получить все элементы массивов a и b, которые не входят в них одновременно.

Разность и симметрическая разность массивов
Нужно создать программу, которая будет считать объединение, пересечение, разность и симметрическую разность массивов А(n) n<=100 и B(n)...

Объединение, пересечение, разность, симметрическая разность множеств
Составить множество А из букв фамилии, множество В – из букв имени, множество С – из букв отчества (повторяющиеся элементы удалить). Найти:...

2
 Аватар для JsLoveR
425 / 167 / 48
Регистрация: 05.12.2012
Сообщений: 855
23.04.2013, 04:10
veres, вам уже давали готовые скрипты, в особенности тут https://www.cyberforum.ru/javascript/thread843214-page2.html. Не уж-то тяжело изменить условие в скрипте?
0
 Аватар для Alexdemath
128 / 125 / 39
Регистрация: 11.04.2010
Сообщений: 255
24.04.2013, 00:58
Лучший ответ Сообщение было отмечено veres как решение

Решение

Цитата Сообщение от veres Посмотреть сообщение
Даны два упорядоченных числовых массива A и B размерами M и N соответственно. Написать функции, которые возвращают:
1) разность массивов - все элементы A, не входящие в B (пример [1,2,3,3,3,4,5,6] \ [0,2,2,3,3,4,5,7,8,9] -> [1,6]);
В возвращаемых массивах элементы не должны повторяться, даже если элементы в исходных массивах повторяются.
Можно поступить так:

1) удалить повторяющиеся элементы в обоих массивах;
2) слить массивы в один (обозначим С), сохраняя упорядоченность;
3) оставить в C только дубли, которые будут элементами пересечения A и B;
4) удалить из A все элементы, которые совпадают с элементами C, остаток и будет искомой разностью массивов A и B.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<script type="text/javascript">
function Complement(A,B)
{  
    var a=A[0], b=B[0], k1=1, k2=1;
 
    for (var k=1; k<A.length; k++)
        { if (A[k]!=a) { A[k1]=A[k]; a=A[k]; k1++; } }
    A.length = k1;
 
    for (var k=1; k<B.length; k++)
        { if (B[k]!=b) { B[k2]=B[k]; b=B[k]; k2++; } }        
    B.length = k2;
    
    var M=A.length, N=B.length, i=0, j=0, r=0, C=[];
 
    if (A[M-1]<=B[N-1]) { B[N]=B[N-1]; }
    else                { B[N]=A[M-1]; }
 
    for (var m=0; m<M+N; m++)                   
        { if (A[i]<=B[j]) { C[m]=A[i]; i++; }
          else            { C[m]=B[j]; j++; }
 
          if (m>0 && C[m-1]==C[m]) { C[r]=C[m-1]; r++; }
        }
    C.length = r;
 
    var i=0, j=0, p=0;
 
    while (i<M)
        { if (A[i]==C[j]) { ++i; ++j; }
          else { A[p]=A[i]; p++; i++; }
        }
    A.length = p;
    
    return A;
}
 
//Пример
alert( Complement([1,2,3,3,3,4,5,6],[0,2,2,3,3,4,5,7,8,9]) );
</script>


Цитата Сообщение от veres Посмотреть сообщение
Даны два упорядоченных числовых массива A и B размерами M и N соответственно. Написать функции, которые возвращают:
2) симметрическую разность - все элементы A и B, которые не принадлежат одновременно обоим массивам
(пример [1,2,3,3,3,4,5,6] Δ [0,2,2,3,3,4,5,7,8,9] -> [0,1,6,7,8,9]).
В возвращаемых массивах элементы не должны повторяться, даже если элементы в исходных массивах повторяются.
Здесь проще:
1) удалить повторяющиеся элементы в обоих массивах;
2) слить оба массива в один, пропуская совпадающие элементы.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<script type="text/javascript">
function SymmetricDifference(A,B)
{
    var a=A[0], b=B[0], k1=1, k2=1;
 
    for (var k=1; k<A.length; k++)
        { if (A[k]!=a) { A[k1]=A[k]; a=A[k]; k1++; } }
    A.length = k1;
 
    for (var k=1; k<B.length; k++)
        { if (B[k]!=b) { B[k2]=B[k]; b=B[k]; k2++; } }        
    B.length = k2;
 
    var C=[], i=0, j=0, N=A.length, M=B.length, 
        max1 = Math.max(A[N-1],B[M-1])+1;
 
    A[N] = max1; B[M] = max1;
 
    for (var k=0; k<N+M; k++)
        { if (A[i]==B[j])     { ++i; ++j; }
          else if (A[i]<B[j]) { C[C.length]=A[i]; i++; } 
          else                { C[C.length]=B[j]; j++; }
        }
    
    return C;
}
 
//Пример
alert( SymmetricDifference([1,2,3,3,3,4,5,6],[0,2,2,3,3,4,5,7,8,9]) )
</script>
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.04.2013, 00:58
Помогаю со студенческими работами здесь

Симметрическая разность
Здравствуйте! Нужно выполнить операцию симметрической разности (см картинки из учебника). Вот что у меня получается: Вот текст...

Работа с множествами: объединение, пересечение, симметрическая разность
В общем нужно задать 3 множества (a,b,c) (массивы) И на выходе получить (&quot;A&quot; объединение с &quot;B&quot;) симметрическая разность этой...

Докажите, что найдется два подмножества, у которых симметрическая разность имеет мощность не более двух
Имеется 100 некоторых подмножеств множества {0, 1, ..., 9}. Докажите, что среди них найдется два подмножества, у которых симметрическая...

Симметрическая разница массивов и поиск минимального элемента
Доброе время суток. Помогите пожалуйста с заданием: &quot;Задано массивы чисел А(n), n&lt;=300; and B(m), m&lt;=400; Надобно построить...

Реализация бинарной операции над множествами: "Симметрическая разность"
Само условие: Реализуйте бинарную операцию над множествами — симметрическую разность. Ее результатом являются те элементы двух множеств,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru