Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit


Project 2  Vaccine Distribution

Introduction

This project will require you to write a function that handles matrix data using loops and indexing.

You work for a government entity and have been tasked with processing information about vaccine supply needs. Vaccines are being distributed to people in 5 phases, based on their age, pre-existing  conditions, and jobs that place them at risk. Vaccines must be distributed in 2 doses. You have         information about the following:

-     Anonymous information from people in the vaccine site’s region:

o The phase that they are eligible for.

o Whether they have had 0, 1, or 2 doses ofthe vaccine.

o How many days it has been since the last dose ofthe vaccine for an individual.

-     The number ofvaccine doses that will be available each day.

You have been tasked with determining a distribution plan for determining which individuals will get the vaccine on a given day.

Procedure

Write a function that takes 2 inputs:

-     A 3xN matrix of data on people in the region. Each column represents a different person.

o Row 1 is eligibility.

o Row 2 is how many doses they have received

o Row 3 is how many days it has been since their last dose. Those who haven’t had any vaccine doses will have a -1 in this row.

-     The number of vaccines available on a day

The function should return one output:

-     A 1xN array containing either 1 or 0.

o 1 represents an individual who is to receive a vaccine dose

o 0 represents an individual who will not receive a vaccine dose

Column indices in your input matrix and output array represent the same individuals.

The number of 1’s in your output array should always be equal to the number ofvaccines available that day.

Your function should prioritize lower phase numbers for receiving a vaccine.

Your function should prioritize first doses over second doses for people in the same phase. You function should only give vaccines to individuals who have received fewer than 2 doses.

Your function should not give vaccines to individuals who have received a vaccine dose within the last 21 days.

If two people are at the same phase, have the same number of doses, and are able to receive a vaccine today, but there is only 1 dose left for that day, give the vaccine to the person with the lower column  index.


Hints:

-     Priorities: Loops and counting variables can be just as important as conditional statements for     implementing priority. You can use loop counting variables to track phase number, for instance.

-     Remember that your input and output share a column index.

Testing Your Code: Examples

Here is an example matrix of data:

 

1

5

3

2

4

4

2

2

3

5

2

1

1

2

0

1

1

1

0

0

30

22

23

25

- 1

30

18

25

- 1

- 1

 

For this example, ifthere were 2 doses ofthe vaccine available, the output would be:

 

0

0

0

0

0

0

0

1

1

0

 

Ifthere were 4 doses ofthe vaccine available, the output would be:

 

0

0

1

0

1

0

0

1

1

0

 

In another example, if your matrix of data was:

 

4

3

2

1

5

3

2

1

0

0

0

1

0

0

1

0

- 1

- 1

- 1

18

- 1

- 1

10

- 1

 

And there were 5 doses available, the output would be:

 

1

1

1

0

0

1

0

1

 

Please generate at least 2 pieces of test data yourself. They can be small (i.e. the sizes ofthese examples) and determine what the correct output would be in order to further test your function.

When generating test cases, try to test as many rules as possible with each test case.