def f(n, p):
    if n == 1:
        return 1
    else:
        return 1.0/n + 1.0 - (1.0- p)**n

def argmin_f(keys, f):
    return min(keys, key=f)

def main():
    interval = 1000
    max_people = 100
    print("| positive rate | optimal group size|")
    print("| -- | -- |")
    for i in range(interval):
        p = i/interval
        best = argmin_f(range(1, max_people), lambda x: f(x, p))
        print(f"| {p} | {best}|")

main()


positive rate optimal group size
0.0 99
0.001 32
0.002 23
0.003 19
0.004 16
0.005 15
0.006 13
0.007 12
0.008 12
0.009 11
0.01 11
0.011 10
0.012 10
0.013 9
0.014 9
0.015 9
0.016 8
0.017 8
0.018 8
0.019 8
0.02 8
0.021 7
0.022 7
0.023 7
0.024 7
0.025 7
0.026 7
0.027 7
0.028 7
0.029 6
0.03 6
0.031 6
0.032 6
0.033 6
0.034 6
0.035 6
0.036 6
0.037 6
0.038 6
0.039 6
0.04 6
0.041 6
0.042 5
0.043 5
0.044 5
0.045 5
0.046 5
0.047 5
0.048 5
0.049 5
0.05 5
0.051 5
0.052 5
0.053 5
0.054 5
0.055 5
0.056 5
0.057 5
0.058 5
0.059 5
0.06 5
0.061 5
0.062 5
0.063 5
0.064 5
0.065 5
0.066 4
0.067 4
0.068 4
0.069 4
0.07 4
0.071 4
0.072 4
0.073 4
0.074 4
0.075 4
0.076 4
0.077 4
0.078 4
0.079 4
0.08 4
0.081 4
0.082 4
0.083 4
0.084 4
0.085 4
0.086 4
0.087 4
0.088 4
0.089 4
0.09 4
0.091 4
0.092 4
0.093 4
0.094 4
0.095 4
0.096 4
0.097 4
0.098 4
0.099 4
0.1 4
0.101 4
0.102 4
0.103 4
0.104 4
0.105 4
0.106 4
0.107 4
0.108 4
0.109 4
0.11 4
0.111 4
0.112 4
0.113 4
0.114 4
0.115 4
0.116 4
0.117 4
0.118 4
0.119 4
0.12 4
0.121 4
0.122 4
0.123 4
0.124 3
0.125 3
0.126 3
0.127 3
0.128 3
0.129 3
0.13 3
0.131 3
0.132 3
0.133 3
0.134 3
0.135 3
0.136 3
0.137 3
0.138 3
0.139 3
0.14 3
0.141 3
0.142 3
0.143 3
0.144 3
0.145 3
0.146 3
0.147 3
0.148 3
0.149 3
0.15 3
0.151 3
0.152 3
0.153 3
0.154 3
0.155 3
0.156 3
0.157 3
0.158 3
0.159 3
0.16 3
0.161 3
0.162 3
0.163 3
0.164 3
0.165 3
0.166 3
0.167 3
0.168 3
0.169 3
0.17 3
0.171 3
0.172 3
0.173 3
0.174 3
0.175 3
0.176 3
0.177 3
0.178 3
0.179 3
0.18 3
0.181 3
0.182 3
0.183 3
0.184 3
0.185 3
0.186 3
0.187 3
0.188 3
0.189 3
0.19 3
0.191 3
0.192 3
0.193 3
0.194 3
0.195 3
0.196 3
0.197 3
0.198 3
0.199 3
0.2 3
0.201 3
0.202 3
0.203 3
0.204 3
0.205 3
0.206 3
0.207 3
0.208 3
0.209 3
0.21 3
0.211 3
0.212 3
0.213 3
0.214 3
0.215 3
0.216 3
0.217 3
0.218 3
0.219 3
0.22 3
0.221 3
0.222 3
0.223 3
0.224 3
0.225 3
0.226 3
0.227 3
0.228 3
0.229 3
0.23 3
0.231 3
0.232 3
0.233 3
0.234 3
0.235 3
0.236 3
0.237 3
0.238 3
0.239 3
0.24 3
0.241 3
0.242 3
0.243 3
0.244 3
0.245 3
0.246 3
0.247 3
0.248 3
0.249 3
0.25 3
0.251 3
0.252 3
0.253 3
0.254 3
0.255 3
0.256 3
0.257 3
0.258 3
0.259 3
0.26 3
0.261 3
0.262 3
0.263 3
0.264 3
0.265 3
0.266 3
0.267 3
0.268 3
0.269 3
0.27 3
0.271 3
0.272 3
0.273 3
0.274 3
0.275 3
0.276 3
0.277 3
0.278 3
0.279 3
0.28 3
0.281 3
0.282 3
0.283 3
0.284 3
0.285 3
0.286 3
0.287 3
0.288 3
0.289 3
0.29 3
0.291 3
0.292 3
0.293 3
0.294 3
0.295 3
0.296 3
0.297 3
0.298 3
0.299 3
0.3 3
0.301 3
0.302 3
0.303 3
0.304 3
0.305 3
0.306 3
0.307 1
0.308 1
0.309 1
0.31 1
0.311 1
0.312 1
0.313 1
0.314 1
0.315 1
0.316 1
0.317 1
0.318 1
0.319 1
0.32 1
0.321 1
0.322 1
0.323 1
0.324 1
0.325 1
0.326 1
0.327 1
0.328 1
0.329 1
0.33 1
0.331 1
0.332 1
0.333 1
0.334 1
0.335 1
0.336 1
0.337 1
0.338 1
0.339 1
0.34 1
0.341 1
0.342 1
0.343 1
0.344 1
0.345 1
0.346 1
0.347 1
0.348 1
0.349 1
0.35 1
0.351 1
0.352 1
0.353 1
0.354 1
0.355 1
0.356 1
0.357 1
0.358 1
0.359 1
0.36 1
0.361 1
0.362 1
0.363 1
0.364 1
0.365 1
0.366 1
0.367 1
0.368 1
0.369 1
0.37 1
0.371 1
0.372 1
0.373 1
0.374 1
0.375 1
0.376 1
0.377 1
0.378 1
0.379 1
0.38 1
0.381 1
0.382 1
0.383 1
0.384 1
0.385 1
0.386 1
0.387 1
0.388 1
0.389 1
0.39 1
0.391 1
0.392 1
0.393 1
0.394 1
0.395 1
0.396 1
0.397 1
0.398 1
0.399 1
0.4 1
0.401 1
0.402 1
0.403 1
0.404 1
0.405 1
0.406 1
0.407 1
0.408 1
0.409 1
0.41 1
0.411 1
0.412 1
0.413 1
0.414 1
0.415 1
0.416 1
0.417 1
0.418 1
0.419 1
0.42 1
0.421 1
0.422 1
0.423 1
0.424 1
0.425 1
0.426 1
0.427 1
0.428 1
0.429 1
0.43 1
0.431 1
0.432 1
0.433 1
0.434 1
0.435 1
0.436 1
0.437 1
0.438 1
0.439 1
0.44 1
0.441 1
0.442 1
0.443 1
0.444 1
0.445 1
0.446 1
0.447 1
0.448 1
0.449 1
0.45 1
0.451 1
0.452 1
0.453 1
0.454 1
0.455 1
0.456 1
0.457 1
0.458 1
0.459 1
0.46 1
0.461 1
0.462 1
0.463 1
0.464 1
0.465 1
0.466 1
0.467 1
0.468 1
0.469 1
0.47 1
0.471 1
0.472 1
0.473 1
0.474 1
0.475 1
0.476 1
0.477 1
0.478 1
0.479 1
0.48 1
0.481 1
0.482 1
0.483 1
0.484 1
0.485 1
0.486 1
0.487 1
0.488 1
0.489 1
0.49 1
0.491 1
0.492 1
0.493 1
0.494 1
0.495 1
0.496 1
0.497 1
0.498 1
0.499 1
0.5 1
0.501 1
0.502 1
0.503 1
0.504 1
0.505 1
0.506 1
0.507 1
0.508 1
0.509 1
0.51 1
0.511 1
0.512 1
0.513 1
0.514 1
0.515 1
0.516 1
0.517 1
0.518 1
0.519 1
0.52 1
0.521 1
0.522 1
0.523 1
0.524 1
0.525 1
0.526 1
0.527 1
0.528 1
0.529 1
0.53 1
0.531 1
0.532 1
0.533 1
0.534 1
0.535 1
0.536 1
0.537 1
0.538 1
0.539 1
0.54 1
0.541 1
0.542 1
0.543 1
0.544 1
0.545 1
0.546 1
0.547 1
0.548 1
0.549 1
0.55 1
0.551 1
0.552 1
0.553 1
0.554 1
0.555 1
0.556 1
0.557 1
0.558 1
0.559 1
0.56 1
0.561 1
0.562 1
0.563 1
0.564 1
0.565 1
0.566 1
0.567 1
0.568 1
0.569 1
0.57 1
0.571 1
0.572 1
0.573 1
0.574 1
0.575 1
0.576 1
0.577 1
0.578 1
0.579 1
0.58 1
0.581 1
0.582 1
0.583 1
0.584 1
0.585 1
0.586 1
0.587 1
0.588 1
0.589 1
0.59 1
0.591 1
0.592 1
0.593 1
0.594 1
0.595 1
0.596 1
0.597 1
0.598 1
0.599 1
0.6 1
0.601 1
0.602 1
0.603 1
0.604 1
0.605 1
0.606 1
0.607 1
0.608 1
0.609 1
0.61 1
0.611 1
0.612 1
0.613 1
0.614 1
0.615 1
0.616 1
0.617 1
0.618 1
0.619 1
0.62 1
0.621 1
0.622 1
0.623 1
0.624 1
0.625 1
0.626 1
0.627 1
0.628 1
0.629 1
0.63 1
0.631 1
0.632 1
0.633 1
0.634 1
0.635 1
0.636 1
0.637 1
0.638 1
0.639 1
0.64 1
0.641 1
0.642 1
0.643 1
0.644 1
0.645 1
0.646 1
0.647 1
0.648 1
0.649 1
0.65 1
0.651 1
0.652 1
0.653 1
0.654 1
0.655 1
0.656 1
0.657 1
0.658 1
0.659 1
0.66 1
0.661 1
0.662 1
0.663 1
0.664 1
0.665 1
0.666 1
0.667 1
0.668 1
0.669 1
0.67 1
0.671 1
0.672 1
0.673 1
0.674 1
0.675 1
0.676 1
0.677 1
0.678 1
0.679 1
0.68 1
0.681 1
0.682 1
0.683 1
0.684 1
0.685 1
0.686 1
0.687 1
0.688 1
0.689 1
0.69 1
0.691 1
0.692 1
0.693 1
0.694 1
0.695 1
0.696 1
0.697 1
0.698 1
0.699 1
0.7 1
0.701 1
0.702 1
0.703 1
0.704 1
0.705 1
0.706 1
0.707 1
0.708 1
0.709 1
0.71 1
0.711 1
0.712 1
0.713 1
0.714 1
0.715 1
0.716 1
0.717 1
0.718 1
0.719 1
0.72 1
0.721 1
0.722 1
0.723 1
0.724 1
0.725 1
0.726 1
0.727 1
0.728 1
0.729 1
0.73 1
0.731 1
0.732 1
0.733 1
0.734 1
0.735 1
0.736 1
0.737 1
0.738 1
0.739 1
0.74 1
0.741 1
0.742 1
0.743 1
0.744 1
0.745 1
0.746 1
0.747 1
0.748 1
0.749 1
0.75 1
0.751 1
0.752 1
0.753 1
0.754 1
0.755 1
0.756 1
0.757 1
0.758 1
0.759 1
0.76 1
0.761 1
0.762 1
0.763 1
0.764 1
0.765 1
0.766 1
0.767 1
0.768 1
0.769 1
0.77 1
0.771 1
0.772 1
0.773 1
0.774 1
0.775 1
0.776 1
0.777 1
0.778 1
0.779 1
0.78 1
0.781 1
0.782 1
0.783 1
0.784 1
0.785 1
0.786 1
0.787 1
0.788 1
0.789 1
0.79 1
0.791 1
0.792 1
0.793 1
0.794 1
0.795 1
0.796 1
0.797 1
0.798 1
0.799 1
0.8 1
0.801 1
0.802 1
0.803 1
0.804 1
0.805 1
0.806 1
0.807 1
0.808 1
0.809 1
0.81 1
0.811 1
0.812 1
0.813 1
0.814 1
0.815 1
0.816 1
0.817 1
0.818 1
0.819 1
0.82 1
0.821 1
0.822 1
0.823 1
0.824 1
0.825 1
0.826 1
0.827 1
0.828 1
0.829 1
0.83 1
0.831 1
0.832 1
0.833 1
0.834 1
0.835 1
0.836 1
0.837 1
0.838 1
0.839 1
0.84 1
0.841 1
0.842 1
0.843 1
0.844 1
0.845 1
0.846 1
0.847 1
0.848 1
0.849 1
0.85 1
0.851 1
0.852 1
0.853 1
0.854 1
0.855 1
0.856 1
0.857 1
0.858 1
0.859 1
0.86 1
0.861 1
0.862 1
0.863 1
0.864 1
0.865 1
0.866 1
0.867 1
0.868 1
0.869 1
0.87 1
0.871 1
0.872 1
0.873 1
0.874 1
0.875 1
0.876 1
0.877 1
0.878 1
0.879 1
0.88 1
0.881 1
0.882 1
0.883 1
0.884 1
0.885 1
0.886 1
0.887 1
0.888 1
0.889 1
0.89 1
0.891 1
0.892 1
0.893 1
0.894 1
0.895 1
0.896 1
0.897 1
0.898 1
0.899 1
0.9 1
0.901 1
0.902 1
0.903 1
0.904 1
0.905 1
0.906 1
0.907 1
0.908 1
0.909 1
0.91 1
0.911 1
0.912 1
0.913 1
0.914 1
0.915 1
0.916 1
0.917 1
0.918 1
0.919 1
0.92 1
0.921 1
0.922 1
0.923 1
0.924 1
0.925 1
0.926 1
0.927 1
0.928 1
0.929 1
0.93 1
0.931 1
0.932 1
0.933 1
0.934 1
0.935 1
0.936 1
0.937 1
0.938 1
0.939 1
0.94 1
0.941 1
0.942 1
0.943 1
0.944 1
0.945 1
0.946 1
0.947 1
0.948 1
0.949 1
0.95 1
0.951 1
0.952 1
0.953 1
0.954 1
0.955 1
0.956 1
0.957 1
0.958 1
0.959 1
0.96 1
0.961 1
0.962 1
0.963 1
0.964 1
0.965 1
0.966 1
0.967 1
0.968 1
0.969 1
0.97 1
0.971 1
0.972 1
0.973 1
0.974 1
0.975 1
0.976 1
0.977 1
0.978 1
0.979 1
0.98 1
0.981 1
0.982 1
0.983 1
0.984 1
0.985 1
0.986 1
0.987 1
0.988 1
0.989 1
0.99 1
0.991 1
0.992 1
0.993 1
0.994 1
0.995 1
0.996 1
0.997 1
0.998 1
0.999 1
Select a repo