假设现在的计算机比Appel做实验时所用的计算机快1000倍。如果使用相同的总计算时间(大约一天),对于O(n²)算法和O(nlog n)算法,问题的规模n分别增加到多少
时间: 2024-01-02 20:02:49 浏览: 27
假设使用相同的总计算时间来运行O(n²)算法和O(nlogn)算法,现在的计算机比Appel做实验时所用的计算机快1000倍。
对于O(n²)算法,时间复杂度为T1 = k1 * n²,其中k1是一个与n无关的常数,表示对于每个输入规模n,算法需要的总计算时间。现在的计算机比Appel做实验时所用的计算机快1000倍,因此,总计算时间变为原来的1/1000,即:
T1' = T1 / 1000 = k1 * n² / 1000
对于O(nlogn)算法,时间复杂度为T2 = k2 * nlogn,其中k2是一个与n无关的常数。现在的计算机比Appel做实验时所用的计算机快1000倍,因此,总计算时间变为原来的1/1000,即:
T2' = T2 / 1000 = k2 * nlogn / 1000
将T1'和T2'相等,求解n,可以得到:
k1 * n² / 1000 = k2 * nlogn / 1000
n = (k2 / k1) * logn
将logn移项,得到:
n - (k2 / k1) * logn = 0
因此,问题的规模n为logn的解,即:
n = e^(k2 / k1)
其中,e是自然对数的底数,约等于2.71828。
综上所述,对于O(n²)算法和O(nlogn)算法,问题的规模n分别增加到e^(k2 / k1)。
相关问题
python的模糊查询
Python的模糊查询可以使用一些第三方库实现,比如fuzzywuzzy和difflib。这些库可以用于比较两个字符串之间的相似度,并返回一个匹配程度的分值。具体实现方式可以使用编辑距离算法,基于字符的相似度来计算两个字符串的相似程度。这种方法可以用于实现模糊搜索或自动纠错等功能。
以下是一个使用fuzzywuzzy库进行模糊查询的例子:
```python
from fuzzywuzzy import fuzz
# 定义一个字符串列表
choices = ["apple", "banana", "orange", "kiwi"]
# 使用process.extract方法进行模糊查询
result = fuzz.process.extract("appel", choices, limit=2)
print(result)
```
以上代码中,我们定义了一个字符串列表choices,并将其作为目标数据源。接着使用process.extract方法对输入的字符串"appel"进行模糊查询,返回匹配程度最高的两个结果。输出结果为:
```
[('apple', 90), ('kiwi', 29)]
```
其中第一个元素为匹配结果,第二个元素为匹配分值。在这个例子中,"apple"与"appel"的匹配分值为90,而"kiwi"的匹配分值为29。
模糊综合评价法 python
模糊综合评价法(Fuzzy Comprehensive Evaluation)是一种利用模糊数学理论对复杂问题进行评价和决策的方法。在Python中,可以使用模糊逻辑库(例如fuzzywuzzy)来实现模糊综合评价法。
首先,你需要安装模糊逻辑库。可以使用以下命令通过pip安装:
```
pip install fuzzywuzzy
```
接下来,你需要导入所需的模块:
```python
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
```
然后,你可以使用模糊逻辑库中提供的函数来计算模糊相似度、匹配度等评价指标。例如,可以使用`fuzz.ratio()`函数来计算两个字符串的相似度:
```python
string1 = "apple"
string2 = "appel"
similarity = fuzz.ratio(string1, string2)
print(similarity)
```
你还可以使用`process.extractOne()`函数来找到一个字符串在一组字符串中最匹配的字符串:
```python
choices = ["apple", "banana", "orange"]
query = "appel"
best_match = process.extractOne(query, choices)
print(best_match)
```
这只是使用模糊逻辑库进行模糊综合评价的简单示例,你可以根据具体的评价需求和数据类型进行更复杂的应用和调整。