ビットコいぬの抽選は、認証ユーザーと非認証ユーザーの応募から合計1500人の当選者を選びます。
認証ユーザーの応募から優先して当選者が選ばれ、N人に満たなかった場合は非認証ユーザーの応募から選ばれます。
認証ユーザーを優先する理由は、非認証ユーザーはいくらでもBotアカウントを量産して応募することができてしまいますが、認証ユーザーは課金しているためBotではなく人間がきちんと運用している信頼性が高いからです。
応募者数: 認証済みユーザー500人、非認証ユーザー500人
↓
当選者数: 認証済みユーザー500人(当選率100%)、非認証ユーザー500人(当選率100%)応募者数: 認証済みユーザー500人、非認証ユーザー5000人
↓
当選者数: 認証済みユーザー500人(当選率100%)、非認証ユーザー1000人(当選率20%)応募者数: 認証済みユーザー3000人、非認証ユーザー50000人
↓
当選者数: 認証済みユーザー1500人(当選率50%)、非認証ユーザー0人(当選率0%)
function calculateWinners(verifiedApplicants, unverifiedApplicants, totalWinners = 1500) {
// 入力値の検証
if (verifiedApplicants < 0 || unverifiedApplicants < 0 || totalWinners < 0) {
throw new Error('負の値は無効です');
}
// 認証済みユーザーの当選者数を決定
const verifiedWinners = Math.min(verifiedApplicants, totalWinners);
// 残りの当選者枠
const remainingWinners = totalWinners - verifiedWinners;
// 非認証ユーザーの当選者数を決定
const unverifiedWinners = Math.min(unverifiedApplicants, remainingWinners);
return {
verified: verifiedWinners,
unverified: unverifiedWinners,
total: verifiedWinners + unverifiedWinners
};
}

