问题描述
- 数据处理问题:发现最佳模数
-
发现最佳模数(有一组大整数N1, N2, … Nx和一个较小的整数M,要求找出一个不超过M的整数P,使所有大整数对P的模皆不重复。继而再问如何找到符合以上要求的最小的P。
请问大家有什么好的方法或者思路,可以比较快速的解决这个问题,谢谢!
解决方案
首先(N1,n2.....Nx)的数都不相同,然后选其中最大的数MaxN做除数,那么所有的模都不相同,这步不用做,只是说明数理。然后,如果这个最大数是奇数,加1,然后除以2得到的数(向上取整),作为除数。如果模有相同的,向上找,找最大数MaxN的四分之三,向上取整,重复上一步。如果没有则向下找,最后如果选出来的数大于M,则无解,小于M,就是它了
解决方案二:
只想到一个没什么技术含量的方法,
P重1开始,把N1到Nx逐个对P取模,并将模放到一个数组中,且每取到一个模就与前面所有储存的模比较,如果有相同的则跳出循环,执行下一个P。
时间: 2024-11-03 21:43:26