Алгоритм для перевірки, якщо список цілих чисел попарно співпадає

user2782067 06/12/2018. 3 answers, 695 views
algorithms primes

Чи є трьома ефективними алгоритмами для перевірки того, чи є список цілих чисел попарно співдруковані, або ж більш загальний алгоритм буде найкращим варіантом?

3 Answers


Draconis 06/12/2018.

По-перше, два факти про цілих числах coprime:

  • Iff $ a $ і $ b $ - coprime, то $ ab = \ mathrm (lcm) (a, b) $
  • Iff $ a $ співпадає як з $ b $, так і з $ c $, то $ a $ співпадає з $ bc $

З цього випливає, що безліч чітких цілих чисел $ \ (a, b, \ cdots z \) $ є попарно співдрукованим, якщо його продукт дорівнює його найменшому загальному множині.

Ви можете обчислити найменш загальний множин, використовуючи таку ідентифікацію:

$$ \ mathrm (lcm) (a, b, c) = \ mathrm (lcm) (a, \ mathrm (lcm) (b, c)) $ $

Припускаючи, що у вас є $ n $ числа з $ k $ цифрами кожен, а множення / розділення / моддинг два числа - $ O (1) $ (що може бути або не зовсім правильне припущення залежно від вашої моделі), то:

  • Обчислення продукту вашого набору займає $ O (n) $
  • Обчислення gcd двох чисел займає $ O (k) $
  • Таким чином, обчислення lcm двох чисел також займає $ O (k) $, зменшуючи до gcd
  • Таким чином, обчислення lcm усього набору вимагає $ O (nk) $

Таким чином, складність часу всього алгоритму становить $ O (nk) $.


D.W. 06/13/2018.

Так. Найвищий підхід до перевірки кожної пари чисел займає квадратичний час, але є більш ефективні алгоритми. Існує майже лінійний алгоритм часу, описаний у наступному документі:

Даніель Дж. Бернстайн. Факторинг в коприм в суто лінійний час . Журнал алгоритмів 54 (2005), 1--30.

Див. Також https://cstheory.stackexchange.com/q/3393/5038 . Це майже так само ефективно, як ви могли сподіватися.

Щоб з'ясувати, як це допомагає у вашій ситуації, після того, як ви знайдете основу копріем і факторизує кожен елемент на основі, це тривіально, щоб перевірити, чи є вони попарно співдруковані: якщо вони не є попарно співзвученими, то деякі пари мають спільні коефіцієнт, і це буде фактором, який перебуває в копердійній основі і присутній у факторизації обох. Якщо немає фактору, який є загальним для представлення факторизації двох чи більше чисел, то ви знаєте, що числа є попарно співзвученими. Після того, як у вас є факторизації, легко перевірити в лінійному часі будь-які числа в більш ніж однієї факторизації.


MackTuesday 06/13/2018.

Знайдіть основні коефіцієнти кожного числа. Ці цифри є всіма попарно співзвученими тоді і тільки тоді, коли кожна прогалина у всій колекції відрізняється. Цю перевірку можна виконати в час O (n) за допомогою хеш-таблиці.

Редагувати: відповідь Драконіса тим краще, тому що вона не вимагає ніякої факторизації. Обчислення GCD відбувається швидше, якщо ваші номери є великими та / або основними.


HighResolutionMusic.com - Download Hi-Res Songs

1 Martin Garrix

Yottabyte flac

Martin Garrix. 2018. Writer: Martin Garrix.
2 Dyro

Latency flac

Dyro. 2018. Writer: Martin Garrix;Dyro.
3 Martin Garrix

Access flac

Martin Garrix. 2018. Writer: Martin Garrix.
4 Alan Walker

Diamond Heart flac

Alan Walker. 2018. Writer: Alan Walker;Sophia Somajo;Mood Melodies;James Njie;Thomas Troelsen;Kristoffer Haugan;Edvard Normann;Anders Froen;Gunnar Greve;Yann Bargain;Victor Verpillat;Fredrik Borch Olsen.
5 Sia

I'm Still Here flac

Sia. 2018. Writer: Sia.
6 Bradley Cooper

Shallow flac

Bradley Cooper. 2018. Writer: Andrew Wyatt;Anthony Rossomando;Mark Ronson;Lady Gaga.
7 Cardi B

Taki Taki flac

Cardi B. 2018. Writer: Bava;Juan Vasquez;Vicente Saavedra;Jordan Thorpe;DJ Snake;Ozuna;Cardi B;Selena Gomez.
8 Blinders

Breach (Walk Alone) flac

Blinders. 2018. Writer: Dewain Whitmore;Ilsey Juber;Blinders;Martin Garrix.
9 Halsey

Without Me flac

Halsey. 2018. Writer: Halsey;Delacey;Louis Bell;Amy Allen;Justin Timberlake;Timbaland;Scott Storch.
10 Lady Gaga

I'll Never Love Again flac

Lady Gaga. 2018. Writer: Benjamin Rice;Lady Gaga.
11 Mako

Rise flac

Mako. 2018. Writer: Riot Music Team;Mako;Justin Tranter.
12 Kelsea Ballerini

This Feeling flac

Kelsea Ballerini. 2018. Writer: Andrew Taggart;Alex Pall;Emily Warren.
13 Dewain Whitmore

Burn Out flac

Dewain Whitmore. 2018. Writer: Dewain Whitmore;Ilsey Juber;Emilio Behr;Martijn Garritsen.
14 Avril Lavigne

Head Above Water flac

Avril Lavigne. 2018. Writer: Stephan Moccio;Travis Clark;Avril Lavigne.
15 Lady Gaga

Look What I Found flac

Lady Gaga. 2018. Writer: DJ White Shadow;Nick Monson;Mark Nilan Jr;Lady Gaga.
16 Billie Eilish

When The Party's Over flac

Billie Eilish. 2018. Writer: Billie Eilish;FINNEAS.
17 Bradley Cooper

Always Remember Us This Way flac

Bradley Cooper. 2018. Writer: Lady Gaga;Dave Cobb.
18 Rita Ora

Let You Love Me flac

Rita Ora. 2018. Writer: Rita Ora.
19 Diplo

Electricity flac

Diplo. 2018. Writer: Diplo;Mark Ronson;Picard Brothers;Wynter Gordon;Romy Madley Croft;Florence Welch.
20 Charli XCX

1999 flac

Charli XCX. 2018. Writer: Charli XCX;Troye Sivan;Leland;Oscar Holter;Noonie Bao.

Related questions

Hot questions

Language

Popular Tags