Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

The purpose of this assignment is to get you to implement and use lists. The assignment consists of three (3) problems, corresponding to minimum (C),

image text in transcribedimage text in transcribedimage text in transcribed

The purpose of this assignment is to get you to implement and use lists. The assignment consists of three (3) problems, corresponding to minimum (C), expected (B), and outstanding (A) levels of difficulty. That is, solving the first problem yields a grade of C, solving the first two problems yields a grade of B, and solving all three problems yields a grade of A. Background Radio stations have a challenging job: Creating a daily play-list. At the beginning of each day, a radio station creates a daily play-list (a list of songs that it will play for that day). If a radio station wishes to stay in business, it will choose the songs that are likely to be most popular. It has been observed that the number of requests for a song in the preceding days is a good predictor of whether the song will be popular in the future. In fact requests in recent days are better predictors of a song's popularity than requests in earlier days. For a given song, this observation is modeled by the erponential moving average: P. = RW + P-1(1 - W) where P is the predicted popularity of the song after dayt, Re is the fraction of requests for the song out all requests on that day, . # of requests for the song on day t Total # of requests on day and W is the weight given to more recent requests and is in the range 0 Problem 1 (C Grade): Radio Ga Ga Given a list of songs, and sequences of daily song requests your program will need to create a play-list of a specified length that the radio station should play. Write a program called RadioGaGa.java that reads in a song list, and a sequence of song requests, spanning multiple days, and outputs a play-list of specified length for each following day. ALLAN m W Input WWWWWWWWW inimum WW.Www mumma mm mm The input comprises a number of lines. The first line, contains an integer N, denoting the number of songs in the song list. This is followed by N lines enumerating the songs Bach NO WWW.ANIMA wwwwwwwwwwww wwwwwwwwww line consists of three values: a single word, denoting the title of the song; an integer T, denoting the length of the song in seconds); and decimal value between 0 and 1 denoting the initial popularity of the song. For example: Red_Barchetta 371 0.5 The next line contains three values: an integer T, denoting the maximum length (in minutes) of the play-list, a double W denoting the weight attributed to new requests (see the formula above); and an integer D denoting the number of days of song requests to follow. For example, 22 0.5 2 specifies a T = 22 minute play-list, with a weight W -- 0.5, and D -- 2 days of song requests. Each day of requests consists of a number of lines. The first line contains the integer R, denoting the number of song requests to follow. The next R lines contain song titles from the previously loaded song list. (See Example section.) Processing The day 0 of programming begins after the list is read. Ench following day begins after a day of song requests have been read. The play-list should be as close to the specified time T as possible without exceeding T minutes. Songs should be added to the list according to popularity (most popular to least pop- ular), with ties broken by song length. For example, if two songs are equally popular, the shorter one is preferred. If a song is too long to fit on the play-list, it is passed over. The order of the songs on the play-list should be the order in which they were added. Output For each day (O... D) your program should output a play-list. I.e., there should be D +1 play-lists. Each play-list consists of single line. Each line starts with an integer denoting the day followed by the play-list song titles in the order specified, separated by spaces. Each line is terminated by a new-line character. See next section for example of output. w Example Sample Input The_Garden 419 0.7 Red_Sector_A 311 0.6 High_Water 333 0.4 Red_Barchetta 371 0.5 The_Pass 291 0.55 Roll_The_Bones 330 0.45 Arm_And_Sword 396 0.55 Test_For_Echo 356 0.35 Vapor_Trails 358 0.34 Nobodys_Hero 349 0.22 2112_Overture 1232 0.7 Closer_To_The_Heart 175 0.9 Cygnus_X_1 622 0.2 22 0.5 2 Red_Sector_A Red_Sector_A Vapor_Trails Red_Sector_A Test_for_Echo The Garden Vapor_Trails 2112_Overture The_Garden Test_For_Echo 2112_Overture Sample Output O Closer_To_The_Heart The_Garden Red_Sector_A The Pass 1 Red_Sector_A Closer_To_The_Heart The_Garden The_Pass 2 The Garden Red_Sector A Closer_To_The_Heart Test_For Echo The purpose of this assignment is to get you to implement and use lists. The assignment consists of three (3) problems, corresponding to minimum (C), expected (B), and outstanding (A) levels of difficulty. That is, solving the first problem yields a grade of C, solving the first two problems yields a grade of B, and solving all three problems yields a grade of A. Background Radio stations have a challenging job: Creating a daily play-list. At the beginning of each day, a radio station creates a daily play-list (a list of songs that it will play for that day). If a radio station wishes to stay in business, it will choose the songs that are likely to be most popular. It has been observed that the number of requests for a song in the preceding days is a good predictor of whether the song will be popular in the future. In fact requests in recent days are better predictors of a song's popularity than requests in earlier days. For a given song, this observation is modeled by the erponential moving average: P. = RW + P-1(1 - W) where P is the predicted popularity of the song after dayt, Re is the fraction of requests for the song out all requests on that day, . # of requests for the song on day t Total # of requests on day and W is the weight given to more recent requests and is in the range 0 Problem 1 (C Grade): Radio Ga Ga Given a list of songs, and sequences of daily song requests your program will need to create a play-list of a specified length that the radio station should play. Write a program called RadioGaGa.java that reads in a song list, and a sequence of song requests, spanning multiple days, and outputs a play-list of specified length for each following day. ALLAN m W Input WWWWWWWWW inimum WW.Www mumma mm mm The input comprises a number of lines. The first line, contains an integer N, denoting the number of songs in the song list. This is followed by N lines enumerating the songs Bach NO WWW.ANIMA wwwwwwwwwwww wwwwwwwwww line consists of three values: a single word, denoting the title of the song; an integer T, denoting the length of the song in seconds); and decimal value between 0 and 1 denoting the initial popularity of the song. For example: Red_Barchetta 371 0.5 The next line contains three values: an integer T, denoting the maximum length (in minutes) of the play-list, a double W denoting the weight attributed to new requests (see the formula above); and an integer D denoting the number of days of song requests to follow. For example, 22 0.5 2 specifies a T = 22 minute play-list, with a weight W -- 0.5, and D -- 2 days of song requests. Each day of requests consists of a number of lines. The first line contains the integer R, denoting the number of song requests to follow. The next R lines contain song titles from the previously loaded song list. (See Example section.) Processing The day 0 of programming begins after the list is read. Ench following day begins after a day of song requests have been read. The play-list should be as close to the specified time T as possible without exceeding T minutes. Songs should be added to the list according to popularity (most popular to least pop- ular), with ties broken by song length. For example, if two songs are equally popular, the shorter one is preferred. If a song is too long to fit on the play-list, it is passed over. The order of the songs on the play-list should be the order in which they were added. Output For each day (O... D) your program should output a play-list. I.e., there should be D +1 play-lists. Each play-list consists of single line. Each line starts with an integer denoting the day followed by the play-list song titles in the order specified, separated by spaces. Each line is terminated by a new-line character. See next section for example of output. w Example Sample Input The_Garden 419 0.7 Red_Sector_A 311 0.6 High_Water 333 0.4 Red_Barchetta 371 0.5 The_Pass 291 0.55 Roll_The_Bones 330 0.45 Arm_And_Sword 396 0.55 Test_For_Echo 356 0.35 Vapor_Trails 358 0.34 Nobodys_Hero 349 0.22 2112_Overture 1232 0.7 Closer_To_The_Heart 175 0.9 Cygnus_X_1 622 0.2 22 0.5 2 Red_Sector_A Red_Sector_A Vapor_Trails Red_Sector_A Test_for_Echo The Garden Vapor_Trails 2112_Overture The_Garden Test_For_Echo 2112_Overture Sample Output O Closer_To_The_Heart The_Garden Red_Sector_A The Pass 1 Red_Sector_A Closer_To_The_Heart The_Garden The_Pass 2 The Garden Red_Sector A Closer_To_The_Heart Test_For Echo

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions