xiangting 5.0.5

A library for calculating the deficiency number (a.k.a. xiàngtīng number, 向聴数).
Documentation
// SPDX-FileCopyrightText: 2024 Apricot S.
// SPDX-License-Identifier: MIT
// This file is part of https://github.com/Apricot-S/xiangting

use super::core::ShupaiTable;

pub const SHUPAI_SIZE: usize = 405350;

#[rustfmt::skip]
pub const SHUPAI_TABLE: ShupaiTable = [
    [
        // i = 0
        [0, 0, 0, 0, 0], // n = 0
        [0, 139150, 0, 0, 0], // n = 1
        [0, 105150, 244300, 0, 0], // n = 2
        [0, 75750, 180900, 320050, 0], // n = 3
        [0, 51810, 127560, 232710, 371860], // n = 4
        [0, 33490, 85300, 161050, 266200], // n = 5
        [0, 0, 33490, 85300, 161050], // n = 6
        [0, 0, 0, 33490, 85300], // n = 7
        [0, 0, 0, 0, 33490], // n = 8
        [0, 0, 0, 0, 0], // n = 9
        [0, 0, 0, 0, 0], // n = 10
        [0, 0, 0, 0, 0], // n = 11
        [0, 0, 0, 0, 0], // n = 12
        [0, 0, 0, 0, 0], // n = 13
        [0, 0, 0, 0, 0], // n = 14
    ],
    [
        // i = 1
        [0, 0, 0, 0, 0], // n = 0
        [0, 43130, 0, 0, 0], // n = 1
        [0, 34995, 78125, 0, 0], // n = 2
        [0, 27120, 62115, 105245, 0], // n = 3
        [0, 19980, 47100, 82095, 125225], // n = 4
        [0, 13925, 33905, 61025, 96020], // n = 5
        [0, 9130, 23055, 43035, 70155], // n = 6
        [0, 5595, 14725, 28650, 48630], // n = 7
        [0, 3180, 8775, 17905, 31830], // n = 8
        [0, 1660, 4840, 10435, 19565], // n = 9
        [0, 0, 1660, 4840, 10435], // n = 10
        [0, 0, 0, 1660, 4840], // n = 11
        [0, 0, 0, 0, 1660], // n = 12
        [0, 0, 0, 0, 0], // n = 13
        [0, 0, 0, 0, 0], // n = 14
    ],
    [
        // i = 2
        [0, 0, 0, 0, 0], // n = 0
        [0, 11880, 0, 0, 0], // n = 1
        [0, 10374, 22254, 0, 0], // n = 2
        [0, 8688, 19062, 30942, 0], // n = 3
        [0, 6937, 15625, 25999, 37879], // n = 4
        [0, 5251, 12188, 20876, 31250], // n = 5
        [0, 3745, 8996, 15933, 24621], // n = 6
        [0, 2499, 6244, 11495, 18432], // n = 7
        [0, 1548, 4047, 7792, 13043], // n = 8
        [0, 882, 2430, 4929, 8674], // n = 9
        [0, 456, 1338, 2886, 5385], // n = 10
        [0, 210, 666, 1548, 3096], // n = 11
        [0, 84, 294, 750, 1632], // n = 12
        [0, 28, 112, 322, 778], // n = 13
        [0, 0, 28, 112, 322], // n = 14
    ],
    [
        // i = 3
        [0, 0, 0, 0, 0], // n = 0
        [0, 2878, 0, 0, 0], // n = 1
        [0, 2693, 5571, 0, 0], // n = 2
        [0, 2438, 5131, 8009, 0], // n = 3
        [0, 2118, 4556, 7249, 10127], // n = 4
        [0, 1753, 3871, 6309, 9002], // n = 5
        [0, 1372, 3125, 5243, 7681], // n = 6
        [0, 1007, 2379, 4132, 6250], // n = 7
        [0, 687, 1694, 3066, 4819], // n = 8
        [0, 432, 1119, 2126, 3498], // n = 9
        [0, 247, 679, 1366, 2373], // n = 10
        [0, 126, 373, 805, 1492], // n = 11
        [0, 56, 182, 429, 861], // n = 12
        [0, 21, 77, 203, 450], // n = 13
        [0, 6, 27, 83, 209], // n = 14
    ],
    [
        // i = 4
        [0, 0, 0, 0, 0], // n = 0
        [0, 620, 0, 0, 0], // n = 1
        [0, 610, 1230, 0, 0], // n = 2
        [0, 590, 1200, 1820, 0], // n = 3
        [0, 555, 1145, 1755, 2375], // n = 4
        [0, 503, 1058, 1648, 2258], // n = 5
        [0, 435, 938, 1493, 2083], // n = 6
        [0, 355, 790, 1293, 1848], // n = 7
        [0, 270, 625, 1060, 1563], // n = 8
        [0, 190, 460, 815, 1250], // n = 9
        [0, 122, 312, 582, 937], // n = 10
        [0, 70, 192, 382, 652], // n = 11
        [0, 35, 105, 227, 417], // n = 12
        [0, 15, 50, 120, 242], // n = 13
        [0, 5, 20, 55, 125], // n = 14
    ],
    [
        // i = 5
        [0, 0, 0, 0, 0], // n = 0
        [0, 125, 0, 0, 0], // n = 1
        [0, 125, 250, 0, 0], // n = 2
        [0, 125, 250, 375, 0], // n = 3
        [0, 124, 249, 374, 499], // n = 4
        [0, 121, 245, 370, 495], // n = 5
        [0, 115, 236, 360, 485], // n = 6
        [0, 105, 220, 341, 465], // n = 7
        [0, 90, 195, 310, 431], // n = 8
        [0, 72, 162, 267, 382], // n = 9
        [0, 53, 125, 215, 320], // n = 10
        [0, 35, 88, 160, 250], // n = 11
        [0, 20, 55, 108, 180], // n = 12
        [0, 10, 30, 65, 118], // n = 13
        [0, 4, 14, 34, 69], // n = 14
    ],
    [
        // i = 6
        [0, 0, 0, 0, 0], // n = 0
        [0, 25, 0, 0, 0], // n = 1
        [0, 25, 50, 0, 0], // n = 2
        [0, 25, 50, 75, 0], // n = 3
        [0, 25, 50, 75, 100], // n = 4
        [0, 25, 50, 75, 100], // n = 5
        [0, 25, 50, 75, 100], // n = 6
        [0, 25, 50, 75, 100], // n = 7
        [0, 24, 49, 74, 99], // n = 8
        [0, 22, 46, 71, 96], // n = 9
        [0, 19, 41, 65, 90], // n = 10
        [0, 15, 34, 56, 80], // n = 11
        [0, 10, 25, 44, 66], // n = 12
        [0, 6, 16, 31, 50], // n = 13
        [0, 3, 9, 19, 34], // n = 14
    ],
    [
        // i = 7
        [0, 0, 0, 0, 0], // n = 0
        [0, 5, 0, 0, 0], // n = 1
        [0, 5, 10, 0, 0], // n = 2
        [0, 5, 10, 15, 0], // n = 3
        [0, 5, 10, 15, 20], // n = 4
        [0, 5, 10, 15, 20], // n = 5
        [0, 5, 10, 15, 20], // n = 6
        [0, 5, 10, 15, 20], // n = 7
        [0, 5, 10, 15, 20], // n = 8
        [0, 5, 10, 15, 20], // n = 9
        [0, 5, 10, 15, 20], // n = 10
        [0, 5, 10, 15, 20], // n = 11
        [0, 4, 9, 14, 19], // n = 12
        [0, 3, 7, 12, 17], // n = 13
        [0, 2, 5, 9, 14], // n = 14
    ],
    [
        // i = 8
        [0, 0, 0, 0, 0], // n = 0
        [0, 1, 0, 0, 0], // n = 1
        [0, 1, 2, 0, 0], // n = 2
        [0, 1, 2, 3, 0], // n = 3
        [0, 1, 2, 3, 4], // n = 4
        [0, 1, 2, 3, 4], // n = 5
        [0, 1, 2, 3, 4], // n = 6
        [0, 1, 2, 3, 4], // n = 7
        [0, 1, 2, 3, 4], // n = 8
        [0, 1, 2, 3, 4], // n = 9
        [0, 1, 2, 3, 4], // n = 10
        [0, 1, 2, 3, 4], // n = 11
        [0, 1, 2, 3, 4], // n = 12
        [0, 1, 2, 3, 4], // n = 13
        [0, 1, 2, 3, 4], // n = 14
    ],
];