1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
kirza4 [7]
3 years ago
10

Dr. Watson has been kidnaped! Sherlock Holmes was contacted by the kidnapper for ransom. Moments later he received a message fro

m Dr. Watson's phone. The message contained three random strings. Sherlock being Sherlock, was able to deduce immediately that Dr. Watson was trying to give a hint about his location. He figured out that the longest common subsequence between the 3 words is the location. But since it was too easy for him, he got bored and asked you to find out what the actual location is. Your task is to find the longest common subsequence from the 3 given strings before it is too late. A subsequence is a sequence that can be derived from another sequence by deleting some or no elements without changing the order of the remaining elements. For instance, given a sequence "drew"; "d", "w", "de", "drw", "drew" are all examples of valid subsequences (there are also others), while "er", "wdre" are not. Design a dynamic programming algorithm which takes three input sequences X, Y, and Z, of lengths m, n, and p, respectively, and returns their longest common subsequence. For full marks your algorithm should run in (mnp) time. Note that W is a common subsequence of X, Y, and Z if and only if W is a subsequence of X, W is a subsequence of Y, and W is a subsequence of Z.
Required:
Describe the set of subproblems that your dynamic programming algorithm will consider.
Computers and Technology
1 answer:
adelina 88 [10]3 years ago
8 0

Answer:

please mark me brainlist

Explanation:

This algorithm works for n number of strings in python3

Input:

83217

8213897

683147

Output:

837

from itertools import product

import pdb

import numpy as np

def neigh(index):

N = len(index)

for ri in product((0, -1), repeat=N):

if not all(i == 0 for i in ri):

yield tuple(i + i_rel for i, i_rel in zip(index, ri))

def longestCommonSubSequenceOfN(sqs):

numberOfSequences = len(sqs); # to know number of sequences

lengths = np.array([len(sequence) for sequence in sqs]); # to know length of each sequences placed in # array

incrLengths = lengths + 1; # here we are taking no .of sequences +1

lengths = tuple(lengths); # making lengths into tuple to make it mutable

inverseDistances = np.zeros(incrLengths);

ranges = [tuple(range(1, length+1)) for length in lengths[::-1]]; # finding ranges from 1 to each lengths

for tupleIndex in product(*ranges):

tupleIndex = tupleIndex[::-1];

neighborIndexes = list(neigh(tupleIndex)); # finding neighbours for each tupled index value and # store them in list

operationsWithMisMatch = np.array([]); # creating array which are miss matched

 

for neighborIndex in neighborIndexes:

operationsWithMisMatch = np.append(operationsWithMisMatch, inverseDistances[neighborIndex]);

#appending newly created array with operations miss match and inverseDistances

operationsWithMatch = np.copy(operationsWithMisMatch);

# copying newly generated missmatch indexs

operationsWithMatch[-1] = operationsWithMatch[-1] + 1;

# incrementing last indexed value

chars = [sqs[i][neighborIndexes[-1][i]] for i in range(numberOfSequences)];

# finding a string(chars) with neighbour indexes and checking with other sequences

if(all(elem == chars[0] for elem in chars)):

inverseDistances[tupleIndex] = max(operationsWithMatch);

else:

inverseDistances[tupleIndex] = max(operationsWithMisMatch);

 

subString = ""; # resulted string

mainTupleIndex = lengths; # copying lengths list to mainTupleIndex

while(all(ind > 0 for ind in mainTupleIndex)):

neighborsIndexes = list(neigh(mainTupleIndex));

#generating neighbour indexes with main tuple index in form of list

anyOperation = False;

for tupleIndex in neighborsIndexes:

current = inverseDistances[mainTupleIndex];

if(current == inverseDistances[tupleIndex]): # comparing indexes in main tuple index and inverse #distance tuple index

mainTupleIndex = tupleIndex;

anyOperation = True;

break;

if(not anyOperation): # if anyoperation is False then we are generating sunString

subString += str(sqs[0][mainTupleIndex[0] - 1]);

mainTupleIndex = neighborsIndexes[-1];

return subString[::-1]; # reversing resulted string

sequences = ["83217", "8213897", "683147"]

print(longestCommonSubSequenceOfN(sequences)); #837

You might be interested in
Which image format is good for compressing large, complex images like photos into smaller file sizes?
spin [16.1K]

The correct image format is JPEG


3 0
3 years ago
Which two statements describe the Functions of a modem
cupoosta [38]

Answer:

A modem is the internal or external device its function is to transfer data over communication lines

modems use two different types of data transmission

synchronous and asynchronous

The functions of modem have changed over years it was first used for telegrams and to transmit data in 1950s.

Modems were used with computers in  1977 for first time to transmit data between computers  firstly it was used for small amount of computers

As modem improves day by day and were able to transmit information fastly between two or more hosts and the internet network slowly spreads

There are four types of modems ,

1 Fax Modems which solely transfer data between fax machines

2 The traditional ISDN modem

3 the Digital Subscribers Line

4 the Cable Modem

Explanation:

3 0
3 years ago
_________ is the biggest problem you can face if you don’t identify the scope of your risk management project. Scope creep Nonco
mart [117]

Answer: Scope creep

Explanation:

 Scope creep in the project management basically refers to the uncontrolled development or growth in the project creep. It basically occur when the project scope are not appropriately defined.

It usually involve lack of change in the control system and increase the complexity of the project. It is also has poor requirement analysis.

So, that is why it is the biggest problem we usually face in the project management.

5 0
3 years ago
Can you answer my question it's a bit confusing to me! I'm adding brainlist too!
Inessa05 [86]

Answer:

Double spaced means more space in between lines and there is an option in Google Docs or Word to make it double spaced. One inch margin means that there is one inch between the edge of the paper and where the words start.

6 0
3 years ago
Consider the following code segment which makes use of the list deck and the positive integer i: Which of the following could be
ANEK [815]

Answer: A) Steve Andrew Kevin

B) Alex Joe Matt C) Sally Heather Barbie D) Tim Tim Tim

Explanation:

6 0
3 years ago
Other questions:
  • Acomputer with a domain name is called a
    8·1 answer
  • One suggested means of gaining eye contact before reversing is to:____.
    12·1 answer
  • What executable programs have names that are just one character long, and what do they do??
    5·1 answer
  • Double[][] vals = {{1.1, 1.3, 1.5},
    14·1 answer
  • True or False <br><br> Rootkits are only made by black-hat hackers.
    11·1 answer
  • A developer needs to create a visualforce page that displays case data. The page will be used by both support reps and support m
    10·1 answer
  • Let T be the statement: The sum of any two rational numbers is rational. Then T is true, but the following "proof is incorrect.
    14·1 answer
  • I love this an this a a good app ❤️❤️❤️​
    5·2 answers
  • It is a field that contains a unique identifier for each record in a primary table
    5·1 answer
  • Though there are no specific federal laws for cyberbullying, in some cases cyberbullying
    6·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!