输出所有满足条件的关系

for循环解决简单问题

题目描述
在这里插入图片描述
源代码

#include<stdio.h>
int main()
{
	int i,j,k;
	for(i=1;i<3;i++)
	{
		for(j=i+1;j<4;j++)
		{
			for(k=j+1;k<5;k++)
			{
				printf("(%d,%d,%d)\n",i,j,k);
			}
		}
	}
	return 0;
}

调用库函数解决全排列问题

题目描述

在这里插入图片描述
先找出满足条件的四元组,再对其进行全排列,易知应求1,1,1,6和1,1,2,3的全排列,而c++标准库里面有这样的函数,在这道题里面是四个元素

int a[4]={3,2,1,1};
pre_permutation(a,a+4);//生成3,2,1,1的上一个排列并赋给数组a
next_permutation(a,a+4);//生成3,2,1,1的下一个排列并赋给数组a

由于3,2,1,1的下一个排列是1,1,2,3,故数组a的初值赋为3,2,1,1(这样满足字典序输出,没有要求的话也可以随意输出)。6,1,1,1同理。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a[4]={3,2,1,1},b[4]={6,1,1,1},c=12,d=4;
	while(c--)
	{
		next_permutation(a,a+4);
		printf("(%d,%d,%d,%d)\n",a[0],a[1],a[2],a[3]); 
	}
	while(d--)
	{
		next_permutation(b,b+4);
		printf("(%d,%d,%d,%d)\n",b[0],b[1],b[2],b[3]);
	}
	return 0;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
倒排索引(Inverted Index)是一种常用的文本检索技术,用于快速查找包含某个关键词的文档。倒排索引的核心思想是将文档中的关键词与文档编号建立映射关系,从而可以快速地查找包含某个关键词的文档。 下面是一个简单的倒排索引算法实现,可以输出反向索引字典,并实现关键词的查询: ```python def build_inverted_index(docs): """构建倒排索引""" inverted_index = {} for doc_id, doc in enumerate(docs): for word in doc.lower().split(): if word not in inverted_index: inverted_index[word] = set() inverted_index[word].add(doc_id) return inverted_index def query(inverted_index, query_str): """查询文档编号""" doc_ids = set() for word in query_str.lower().split(): if word in inverted_index: doc_ids = doc_ids.union(inverted_index[word]) return doc_ids # 测试 docs = ["This is the first document.", "This is the second document.", "Third document. Document number three.", "Number four. To repeat, number four."] inverted_index = build_inverted_index(docs) print(inverted_index) # 查询 query_str = "document" doc_ids = query(inverted_index, query_str) print("包含关键词'{}'的文档编号: {}".format(query_str, doc_ids)) ``` 在上面的代码中,我们首先定义了一个`build_inverted_index`函数,用于构建倒排索引。具体实现方式是遍历每个文档,将文档中出现的关键词与文档编号建立映射关系,并存储到一个字典中。这里为了简化,我们将文档编号直接使用索引值表示。例如,第一个文档的编号为0,第二个文档的编号为1,以此类推。 接着,我们定义了一个`query`函数,用于查询包含某个关键词的文档编号。具体实现方式是遍历查询关键词中的每个词,查找对应的文档编号集合,并将结果合并。最后返回合并后的文档编号集合。 在测试代码中,我们使用了一个包含4个文档的示例数据集。首先调用`build_inverted_index`函数构建倒排索引,并输出反向索引字典。然后使用`query`函数查询包含关键词`document`的文档编号,并输出结果。 需要注意的是,上面的实现方式对于大规模的数据集可能会存在存储空间和查询效率的问题。实际应用中,需要考虑采用更为高效的算法和数据结构进行优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值