Unity环境下的质数求解探究
来源:互联网 发布:观察者模式 javascript 编辑:程序博客网 时间:2024/05/21 16:37
以为求解质数很简单,没想到深入了解后发现里面全是道道~
以下代码结果基于 unity5 编辑环境下求解得出:
以下代码结果基于 unity5 编辑环境下求解得出:
①:求N以内的所有质数并返回
//筛法 1000万以內 0.5666879秒 一亿以内 6秒public void PrimeNumber_Sieve(int maxValue){float startTime = Time.realtimeSinceStartup;bool[] primes = new bool[maxValue+1];for (int i=0; i<primes.Length; i++) {primes[i] = true;}primes [0] = false;primes [1] = false;for (int i = 2; i<primes.Length; i++) {if(primes[i] == true){for (int j = 2*i; j<primes.Length; j+=i)primes[j] = false;}}//統計int num = 0;for (int i = 0; i<primes.Length; i++) {if(primes[i] == true)num++;}float endTime = Time.realtimeSinceStartup;Debug.Log("运算时长:"+(endTime-startTime));Debug.Log ("prime's count:"+num);}//方法一:100万以内 0.6371464秒 ; 1000万以内 14秒public List<int> PrimeNumber(int maxValue){float startTime = Time.realtimeSinceStartup;List<int> primes = new List<int>();primes.Add(2);bool isPrime = false;for(int i = 3;i<maxValue+1;i+=2){int sqrtValue = (int)Mathf.Sqrt(i);for(int j = 0;j<primes.Count;j++){if(primes[j]>sqrtValue){isPrime = true;break;}if(i%primes[j] == 0){//不是质数isPrime = false;break;}isPrime = true;}if(isPrime)primes.Add(i);}float endTime = Time.realtimeSinceStartup;Debug.Log("运算时长:"+(endTime-startTime));Debug.Log (primes.Count);return primes;}代码解释就不说了,如果看不懂,可以查看:http://blog.csdn.net/program_think/article/details/7032600。
0 0
- Unity环境下的质数求解探究
- 关于质数的求解
- 关于在Unity下调用Android专有API的探究
- 求解200-500间的质数
- 求解N以内的质数问题
- 逆向思维求解质数
- 求解质数和合数
- JavaScript求解孪生质数
- Unity环境下使用GoogleProtoBuf
- Unity 3D环境下的Android配置
- 在unity环境下封装的mysql库
- oracle正则+with+质数求解
- 3-2编程求解质数
- linux 下malloc的探究
- MacOS下质数的判断方法
- Unicode和ANSI编码环境下编译字符串的问题求解
- 求解下一天的日期
- 【Unity&Shader】关于变灰Shader的探究
- 生产者与消费者
- 如何才能做到像gephi那样社区划分可视化呢?
- BinaryTreePath
- nodejs之路-[1]npm简易帮助手册-install
- Mac 常用操作
- Unity环境下的质数求解探究
- Largest Rectangle in Histogram
- Gradle--第二章。概述 2.2 为什么是Groovy
- CF 573B DP
- IOS-开发日志-UILabel相关
- javac 程序 'javac' 已包含在下列软件包中:
- JAVA面向对象访问的几个容易混淆点
- iOS-开发日志-UIimageView
- 如何用 IT 业者能听懂的话介绍量子计算的原理?