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
Assume there is a class AirConditioner that supports the following behaviors: turning the air conditioner on and off, and checki
vaieri [72.5K]

Answer:

yes?

Explanation:

8 0
3 years ago
Write a program that creates a dictionary containing the U.S. states as keys and their abbreviations as values. The program shou
AleksandrR [38]

Answer:

Explanation:

The following program is written in Python. It creates a loop that keeps creating a random number to randomly choose a State abbreviation from the dictionary. Then it asks the user what the state is. If the user gets the answer correct it prints out "Correct" and adds 1 point to the correct variables. Otherwise it prints "Incorrect" and adds 1 point to the incorrect variable. Finally, printing out the final amount of correct and incorrect responses. The program was tested and the output can be seen below.

import random

states = {"AL":"Alabama","AK":"Alaska","AZ":"Arizona","AR":"Arkansas","CA":"California","CO":"Colorado","CT":"Connecticut","DE":"Delaware","FL":"Florida","GA":"Georgia","HI":"Hawaii","ID":"Idaho","IL":"Illinois","IN":"Indiana","IA":"Iowa","KS":"Kansas","KY":"Kentucky","LA":"Louisiana","ME":"Maine","MD":"Maryland","MA":"Massachusetts","MI":"Michigan","MN":"Minnesota","MS":"Mississippi","MO":"Missouri","MT":"Montana","NE":"Nebraska","NV":"Nevada","NH":"New Hampshire","NJ":"New Jersey","NM":"New Mexico","NY":"New York","NC":"North Carolina","ND":"North Dakota","OH":"Ohio","OK":"Oklahoma","OR":"Oregon","PA":"Pennsylvania","RI":"Rhode Island","SC":"South Carolina","SD":"South Dakota","TN":"Tennessee","TX":"Texas","UT":"Utah","VT":"Vermont","VA":"Virginia","WA":"Washington","WV":"West Virginia","WI":"Wisconsin","WY":"Wyoming"}

keys_list = list(states)

correct = 0

incorrect = 0

while True:

   randNum = random.randint(0, 49)

   abbr = keys_list[randNum]

   answer = input("Enter The State name of " + abbr + ": ")

   if answer.lower() == states[abbr].lower():

       print("Correct")

       correct += 1

   else:

       print("Incorrect")

       incorrect += 1

   again = input("Play again? y/n ")

   if again.lower() == 'n':

       break

print("Correct: " + str(correct))

print("Incorrect: " + str(incorrect))

6 0
2 years ago
Intranet giving unlimited information <br><br>True<br><br>False​
leva [86]

Answer:

true

Explanation:

An intranet is a computer network for sharing information, collaboration tools, operational systems, and other computing services within an organization, usually to the exclusion of access by outsiders. ... Intranets can also be used to facilitate working in groups or via teleconferences.

7 0
2 years ago
A security analyst accesses corporate web pages and inputs random data in the forms. The response received includes the type of
leonid [27]

Answer:

Option c is the correct answer for the above question.

Explanation:

  • The vulnerability is a term that is used to state that any system has some limitation by which the system causes an error while performing the action.
  • The above question states a software and asked the action which is used by the analyst to prevent the limitation. So the system will use the input validation.
  • It is because this prevents the error. it is because this will help to proceed with the wrong or invalid information on the database and the database or system can not hold the wrong data.
  • Hence option c is the correct answer while the other option is not correct because other options can not able to fix the limitation of the above system.
6 0
3 years ago
Assume that the int variables i and j have been declared, and that n has been declared and initialized.
timama [110]

Answer:

public class num6 {

   public static void main(String[] args) {

       int n = 4;

       for(int i = 1; i <= n; ++i) {

           for(int j = 1; j <= i; ++j) {

               System.out.print("* ");

           }

           System.out.println();

       }

   }

}

Explanation:

This solution is implemented in Java

Two for loops are required for this (an inner nd outer for loop).

The innner and outer for loops can be seen as implementing rows and columns (so on the first 'row' i=1, so a single star is printed, on the second row, i =2, two stars are printed and so on, all on seperate lines)

8 0
3 years ago
Other questions:
  • I only want someones opinion on this not anything you would find in a book.
    7·1 answer
  • Which layer of the osi model defines functions related to data delivery, error recovery, and flow control?
    8·1 answer
  • Because public key encryption requires the use of two different keys, it is also known as _____ encryption
    13·1 answer
  • 1.Which type of camera tool pushes the picture back and makes it wider, exaggerating the distance between the background and for
    13·2 answers
  • Both instructions and data in a digital<br>computer are represented as binary<br>digits. True False​
    13·1 answer
  • Do u have to divide or multiply this problem 5300 yd = mi
    9·1 answer
  • Hey guys join me
    9·1 answer
  • Write a python statement that print the number 1000
    6·1 answer
  • Why are pirated software considered a threat?​
    6·1 answer
  • ___________ is some danger that can exploit a vulnerability.
    15·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!