Advertisement
Guest User

Untitled

a guest
Feb 20th, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.47 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Collections;
  5.  
  6. public class Library implements Comparable {
  7.  
  8.     private int index;
  9.     private int booksPerDay;
  10.  
  11.     public int getBooksPerDay() {
  12.         return booksPerDay;
  13.     }
  14.  
  15.     public int getSignUpLength() {
  16.         return signUpLength;
  17.     }
  18.  
  19.     private int signUpLength;
  20.     private ArrayList<Book> books = new ArrayList<>();
  21.     private ArrayList<Book> selectedBooks = new ArrayList<>();
  22.  
  23.     public Library(int index, int booksPerDay, int signUpLength, int[] booksIds) {
  24.         this.index = index;
  25.         this.booksPerDay = booksPerDay;
  26.         this.signUpLength = signUpLength;
  27.         for (int bookID : booksIds) {
  28.             addBook(new Book(bookID, Main.BOOK_SCORES[bookID]));
  29.         }
  30.         Collections.sort(books);
  31.     }
  32.  
  33.     public void addBook(Book book) {
  34.         books.add(book);
  35.     }
  36.  
  37.     public void addSelectedBook(Book book) { selectedBooks.add(book); }
  38.  
  39.     public ArrayList<Book> getBooks() {
  40.         return books;
  41.     }
  42.  
  43.     public void deleteBook(int index) { books.remove(index); }
  44.  
  45.     public int getIndex() {
  46.         return index;
  47.     }
  48.  
  49.     public ArrayList<Book> getSelectedBooks() {
  50.         return selectedBooks;
  51.     }
  52.  
  53.     public int getNumSelectedBooks() {
  54.         return selectedBooks.size();
  55.     }
  56.  
  57.     public long getTotalScore(){
  58.         long score = 0;
  59.         long maxScore = 0;
  60.         for (Book book : books) {
  61.             if (book.getScore() > maxScore){
  62.                 maxScore = book.getScore();
  63.             }
  64.         }
  65.         System.out.println(maxScore);
  66.         for (Book book : books) {
  67.             double newScore = maxScore / (1 + Math.exp(-1 * book.getScore()));
  68.             System.out.println(book.getScore() + " : " + newScore + " : " + maxScore);
  69.             score += newScore;
  70.         }
  71.         return score;
  72.     }
  73.  
  74.     public long getAverageScore() {
  75.         int size = books.size();
  76.         return getTotalScore() / size;
  77.     }
  78.  
  79.     public long getAverageScorePerDay() {
  80.         return (getAverageScore() / (Main.MAX_TIME - signUpLength)) * booksPerDay;
  81.         //return (getAverageScore() * (Main.MAX_TIME - signUpLength));
  82.     }
  83.  
  84.     @Override
  85.     public int compareTo(Object o) {
  86.         Library other = (Library) o;
  87.         if (this.getAverageScorePerDay() == other.getAverageScorePerDay()) return 0;
  88.         return this.getAverageScorePerDay() > other.getAverageScorePerDay() ? 1 : -1;
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement