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
Fittoniya [83]
3 years ago
11

There is a colony of 8 cells arranged in a straight line where each day every cell competes with its adjacent cells(neighbour).

Each day, for each cell, if its neighbours are both active or both inactive, the cell becomes inactive the next day,. otherwise itbecomes active the next day.
Assumptions: The two cells on the ends have single adjacent cell, so the other adjacent cell can be assumsed to be always inactive. Even after updating the cell state. consider its pervious state for updating the state of other cells. Update the cell informationof allcells simultaneously.
Write a fuction cellCompete which takes takes one 8 element array of integers cells representing the current state of 8 cells and one integer days representing te number of days to simulate. An integer value of 1 represents an active cell and value of 0 represents an inactive cell.
Program:
int* cellCompete(int* cells,int days)
{
//write your code here
}
//function signature ends
Test Case 1:
INPUT:
[1,0,0,0,0,1,0,0],1
EXPECTED RETURN VALUE:
[0,1,0,0,1,0,1,0]
Test Case 2:
INPUT:
[1,1,1,0,1,1,1,1,],2
EXPECTED RETURN VALUE:
[0,0,0,0,0,1,1,0]
This is the problem statement given above for the problem. The code which I have written for this problem is given below. But the output is coming same as the input.
#include
using namespace std;
// signature function to solve the problem
int *cells(int *cells,int days)
{ int previous=0;
for(int i=0;i {
if(i==0)
{
if(cells[i+1]==0)
{
previous=cells[i];
cells[i]=0;
}
else
{
cells[i]=0;
}
if(i==days-1)
{
if(cells[days-2]==0)
{
previous=cells[days-1];
cells[days-1]=0;
}
else
{
cells[days-1]=1;
}
}
if(previous==cells[i+1])
{
previous=cells[i];
cells[i]=0;
}

else
{
previous=cells[i];
cells[i]=1;
}
}
}
return cells;
}
int main()
{
int array[]={1,0,0,0,0,1,0,0};
int *result=cells(array,8);
for(int i=0;i<8;i++)
cout< }
I am not able to get the error and I think my logic is wrong. Can we apply dynamic programming here If we can then how?

Computers and Technology
1 answer:
olya-2409 [2.1K]3 years ago
7 0

Answer:

I am writing a C++ program using loops instead of nested if statements.

#include <iostream> // to use input output functions

using namespace std; // to identify  objects like cin cout

void cells(int cells[],int days){ /* function that takes takes one array of integers cells, one integer days representing the number of days to simulate. */

int pos ,num=0; //declares variables pos for position of two adjacent cells and num to iterate for each day

int result[9]; //the updated output array

while (num< days)   { //this loop keeps executing till the value of num is less than the value of number of days

num++;

for(pos=1;pos<9;pos++)   //this loop has a pos variable that works like an index and moves through the cell array

    result[pos]=(cells[pos-1])^ (cells[pos+1]); //updated cell state determined by the previous and next cells (adjacent cells) by bitwise XOR operations

     for(pos=1;pos<9;pos++) //iterates through the array

         cells[pos]=result[pos];    } //the updated cells state is assigned to the cell array simultaneously

   for(pos=1;pos<9;pos++) //iterates through the array and prints the resultant array that contains the updated active and inactive cells values

        cout << result[pos]; }

int main() { //start of the main function body

int j,day;

int output[9];

*/the two cells on the ends (first and last positions of array) have single adjacent cell, so the other adjacent cell can be assumed to be always inactive i.e. 0 */

output[0]=output[9]=0;

for(j=1;j<9;j++) //takes the input array from user

cin >> output[j];

cin >> day;

cells(output,day); } //calls the function cells to print the array with active and inactive cells states.

Explanation:

The program is well explained in the comments mentioned with every statement of the program. I will explain with the help of example:

Suppose the user enters the array = [1,0,0,0,0,1,0,0] and days=1

The while loop checks if the value of num is less than that of days. Here num is 0 and days is 1 So this means that the body of while loop will execute.

In the body of while loop the value of num is incremented by 1. The first loop initializes a variable pos for position of adjacent cells. The statement is a recursive statement result[pos]=(cells[pos-1])^ (cells[pos+1]) that uses previous state for updating the state of other cells. The “^” is the symbol used for bitwise exclusive operator. In bitwise XOR operations the two numbers are taken as operands and XOR is performed on every bit of two numbers. The result of XOR is 1 if the two bits are not same otherwise 0. For example XOR of 1^0 and 0^1 is 1 and the XOR of 0^0 and 1^1 is 0. The second for loop update the cell information of all cells simultaneously. The last loop prints the updated cells states.

The main function takes the input array element from user and the value for the days and calls the cells function to compute the print the active and inactive cells state information.

The screenshot of the program along with its output are attached.

You might be interested in
Which of the following is the core of an operating system that maintains the computer’s clock, starts applications, and assigns
nika2105 [10]

Kernal is the core of an operating system that maintains the computer’s clock, starts applications, and assigns the computer’s resources, such as devices, programs, apps, data, and information.

d. kernal.

<u>Explanation:</u>

Every operating system runs the operating system based on kernel instructions. Main or major role of operating system is kernel. If boot loader program fails to load kernel operation is missing the kernel we need to reinstall operating system or repair the operating system.

To display clock in the workstation or laptop or desktop, clock device driver been executed by kernel of operating system.

Kernel is core of any operating system, but kernel also controlled by operating system such as Unix etc.

3 0
3 years ago
The following pseudocode is an example of ____.do stepAdo stepBif conditionC is true thendo stepDelsedo stepEendifwhile conditio
rewona [7]

Answer:

Option d pretest

Explanation:

Given the pseudocode:

  1. do stepA
  2. do stepB
  3. if conditionC is true
  4. then do stepD
  5. else
  6. do stepE
  7. end if
  8. while conditionF is true
  9. do stepG
  10. end while

The pseudocode above shows that there is a pretest before some codes are executed. For example, line 3 check if condition is true then only execute stepD otherwise execute stepE. Line 8 check if conditionF is true then repeatedly execute stepG. These are examples of pretest a condition will must be met (pretest passed) before a block of codes can be executed. This pretest can be seen in if-else statements and also the while condition.  

6 0
3 years ago
Write an application that allows a user to enter the names and birth dates of up to 10 friends. Continue to prompt the user for
mylen [45]
Sorry I don’t know the answer I am really sorry
5 0
3 years ago
Công dụng của đồng hồ đo điện:vôn kế, ampe kế, oát kế
Lostsunrise [7]

Answer:

I wonder what are you saying?

Explanation:

Please give me brainliest :)

4 0
3 years ago
PLEASEEEEE HELLPPP IT'S URGENT!!! PLEASEEEEE HELLPPP IT'S URGENT!!!
kogti [31]

Answer:

LED matrix is a grid of lights arranged into rows and columns

A battery is a device consisting of one or more electrochemical cells with external connections for powering electrical devices such as flashlights, mobile phones, and electric cars.

A processor is a machine that processes something.

An accelerometer is a tool that measures proper acceleration.

Universal Serial Bus is an industry standard that establishes specifications for cables and connectors and protocols for connection, communication and power

A compas is an instrument containing a magnetized pointer which shows the direction of magnetic north and bearings from it.

A block editor allows you to add Columns block, which basically adds two columns of paragraph blocks.

Iteration is the repetition of a process in order to generate an outcome.

Selection is the action or fact of carefully choosing someone or something as being the best or most suitable.

Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.

debug identifies and remove errors from (computer hardware or software).

an arithmetical value, expressed by a word, symbol, or figure, representing a particular quantity and used in counting and making calculations and for showing order in a series or for identification.

I can do the rest if you want, just wanted to give you a head start :)

8 0
3 years ago
Other questions:
  • Hub is used in Twisted pair Ethernet. True/False
    6·1 answer
  • How often are computer and user policies applied after a user has logged into a computer?
    15·1 answer
  • Write an HTML document which contains two text fields, a button, and a div. The first text field should be labeled “Temperature”
    10·1 answer
  • Today's Apple Mac computers run with the same internal hardware as the Windows-based PC.
    10·2 answers
  • Grace is the editor of her school newspaper. Which feature of a word processing program would she use to make her changes visibl
    7·2 answers
  • In C#Write the program SubscriptExceptionTest in which you use an array of 10 doubles. Write a try block in which you place a lo
    5·1 answer
  • What is the use of a piano​
    10·2 answers
  • How did the use of ARPANET change computing?
    14·1 answer
  • A thesaurus is an example of a(n)
    5·2 answers
  • Upload your completed project including the following:
    13·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!