Создание лотерейной программы на Java - PullRequest
1 голос
/ 27 июня 2009

Мне было интересно, на что мне нужно обратить внимание, чтобы создать программу, которая может читать из файла Excel

Я думал о создании программы, использующей электронную таблицу Excel, ее чтении и создании списка комбинаций, которые еще не встречались

Это просто для забавы, но может быть хорошим вызовом

спасибо

Ответы [ 6 ]

4 голосов
/ 27 июня 2009

Прямой путь получения данных Excel в Java - это, конечно, POI . Очень стабильная, превосходная библиотека, которая позволяет вам работать с Excel на низком уровне.

Следует отметить Руководство для занятых разработчиков POI , которое должно помочь облегчить некоторые начальные проблемы.

Если вас больше интересует изучение POI и выполнение простого упражнения на Java, то это звучит достаточно справедливо. Более интересные вопросы будут состоять в том, как отобразить миллионы комбинаций, которые еще не произошли, и как подойти к этому с точки зрения структуры данных (подсказка: используйте комбинацию поиска и генерации хеш-таблиц, чтобы сохранить затраты памяти минимум).

Если вы хотите принять это всерьез, спросите себя, является ли файл Excel хорошим механизмом хранения данных такого рода. Это действительно то, что вы делаете: использование Excel в качестве хранилища данных. Есть лучшие альтернативы.

3 голосов
/ 27 июня 2009

Зачем вообще идти по маршруту Excel?

Если вы хотите повеселиться и поиграть в Java, в Excel должен быть какой-то способ создания файла данных с разделителями-запятыми. Просто прочитайте это и делайте все, что хотите.

3 голосов
/ 27 июня 2009

Энди Кхана JExcel - это путь, если вы должны использовать Excel. Я обнаружил, что он намного превосходит POI.

Лично я не вижу, что он покупает тебя здесь. Вы можете сгенерировать все комбинации в одном файле или использовать реальную базу данных, если это необходимо. Что такое ничья с Excel, кроме привычки и повсеместности?

0 голосов
/ 27 июня 2009

Используйте файлы, разделенные запятыми, вместо собственных файлов Excel. Сделает вашу жизнь НАМНОГО проще:)

0 голосов
/ 27 июня 2009

Как уже упоминалось, есть несколько библиотек и несколько сообщений, доступных для начала. Я просто хотел дать вам два подхода к достижению вашей цели.

Для случая «составления списка комбинаций, которые еще не произошли»

Я понимаю эту цель, поскольку у вас есть история розыгрышей, и вы хотите сгенерировать набор случайных чисел, которые никогда не встречались в истории. В основном вам нужен сначала генератор случайных чисел и генерировать лотерейные номера. Затем возьмите этот набор чисел и попытаться найти это в исторических данных. Если вы нашли его, просто начните сначала и сгенерируйте новый. Исходя из моего комментария к вопросу, у вас практически есть шанс, скажем (5200 / 47M), что вы найдете свои номера в списке истории. Повторяйте весь этот процесс, пока не получите достаточное количество.

Для случая «генерации списка комбинаций, которые уже произошли»

Вам нужно найти дубликаты в списке истории. Создайте Set<Integer> из каждого исторического вхождения и начните добавлять его к еще одному набору Set<Set<Integer>>. Если набор номера, который вы добавляете, уже произошел во время обработки, вы получите ложное возвращение из метода add этого последнего набора. Затем вы просто печатаете или запоминаете набор повторяющихся номеров.

0 голосов
/ 27 июня 2009

Вот статья, которая может помочь вам ...

Чтение файлов MS Excel с Java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...