Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.ArrayList;
- import java.util.Collections;
- public class Library implements Comparable {
- private int index;
- private int booksPerDay;
- public int getBooksPerDay() {
- return booksPerDay;
- }
- public int getSignUpLength() {
- return signUpLength;
- }
- private int signUpLength;
- private ArrayList<Book> books = new ArrayList<>();
- private ArrayList<Book> selectedBooks = new ArrayList<>();
- public Library(int index, int booksPerDay, int signUpLength, int[] booksIds) {
- this.index = index;
- this.booksPerDay = booksPerDay;
- this.signUpLength = signUpLength;
- for (int bookID : booksIds) {
- addBook(new Book(bookID, Main.BOOK_SCORES[bookID]));
- }
- Collections.sort(books);
- }
- public void addBook(Book book) {
- books.add(book);
- }
- public void addSelectedBook(Book book) { selectedBooks.add(book); }
- public ArrayList<Book> getBooks() {
- return books;
- }
- public void deleteBook(int index) { books.remove(index); }
- public int getIndex() {
- return index;
- }
- public ArrayList<Book> getSelectedBooks() {
- return selectedBooks;
- }
- public int getNumSelectedBooks() {
- return selectedBooks.size();
- }
- public long getTotalScore(){
- long score = 0;
- long maxScore = 0;
- for (Book book : books) {
- if (book.getScore() > maxScore){
- maxScore = book.getScore();
- }
- }
- System.out.println(maxScore);
- for (Book book : books) {
- double newScore = maxScore / (1 + Math.exp(-1 * book.getScore()));
- System.out.println(book.getScore() + " : " + newScore + " : " + maxScore);
- score += newScore;
- }
- return score;
- }
- public long getAverageScore() {
- int size = books.size();
- return getTotalScore() / size;
- }
- public long getAverageScorePerDay() {
- return (getAverageScore() / (Main.MAX_TIME - signUpLength)) * booksPerDay;
- //return (getAverageScore() * (Main.MAX_TIME - signUpLength));
- }
- @Override
- public int compareTo(Object o) {
- Library other = (Library) o;
- if (this.getAverageScorePerDay() == other.getAverageScorePerDay()) return 0;
- return this.getAverageScorePerDay() > other.getAverageScorePerDay() ? 1 : -1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement