【离散数学】置换群的轮换表示

2023-10-29 00:20

本文主要是介绍【离散数学】置换群的轮换表示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目

给出一个置换,写出该置换的轮换表示。比如

表示为(1 3 6 7 8 4 2)(5 9)

输入:

置换后的序列

输出:

不相杂的轮换乘积,每行表示一个轮换(轮换的起始数字最小,每个轮换的起始数字递增排序,单轮换省略)

例如:

样例1:

输入:(空格分隔)

3 1 6 2 9 7 8 4 5

输出:

1 3 6 7 8 4 2(空格分隔)

5 9(空格分隔)

样例2:

输入:(空格分隔)

4 6 7 5 1 2 3

输出:

1 4 5(空格分隔)

2 6(空格分隔)

3 7 (空格分隔)

编程语言:C and C++ (VC6, xp32) 42521
内存最多可用:64MB
CPU使用时间上限:1 秒

 代码示例

#include<stdio.h>
#include<string.h> int main()
{int j,i,k=0,num=1;int a[10];char str[20];gets(str);int totallength = strlen(str);int count = (totallength+1)/2;for (i=0; i<count; i++){a[i] = str[2*i] -48;}//	while(1)
//	{
//		scanf("%d",&a[count]);
//		count++;
//		if(getchar() == '\n')
//		{
//			break;
//		}
//	}//(使用此方法输入时会降低运行效率,故改为输入字符串的形式来提高运行速度)i=0;printf("1 ");int b[10]={0};while(k<count-1){printf("%d ",a[i]);b[i]=1;k++;i=a[i]-1;if(a[i]==num){b[i]=1;k++;for(j=0;j<count-1;j++){if(b[j]==0){i=j;num=j+1;if(num!=a[i])printf("\n%d ",num);break;}}}}return 0;
}

总结

欢迎大家批评指正

这篇关于【离散数学】置换群的轮换表示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/296967

相关文章

从计组中从重温C中浮点数表示及C程序翻译过程

目录 移码​编辑  传统浮点表示格式 浮点数的存储(ieee 754)->修炼内功 例子:   ​编辑 浮点数取的过程   C程序翻译过程 移码  传统浮点表示格式 浮点数的存储(ieee 754)->修炼内功 根据国际标准IEEE(电⽓和电⼦⼯程协会)  32位 例子:    64位    IEEE754对有效数字M和

C语言程序设计(算法的概念及其表示)

一、算法的概念 一个程序应包括两个方面的内容: 对数据的描述:数据结构 对操作的描述:算法 著名计算机科学家沃思提出一个公式: 数据结构 +算法 =程序 完整的程序设计应该是: 数据结构+算法+程序设计方法+语言工具 广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。 对同一个问题,可有不同的解题方法和步骤。为了有效地进行解题,不仅需要保证算法正确,还要考虑算

javascript数组的字符串表示

var names=["aa","bb","hh"]; var namestr=names.join(); console.log(namestr); //后台运行的结果为      aa,bb,hh namestr=names.toString(); console.log(namestr); //后台运行的结果为      aa,bb,hh console.log(nam

输入两个整数m和n,计算需要改变m的二进制表示中的多少位才能得到n。

/*** 输入两个整数m和n,计算需要改变m的二进制表示中的多少位才能得到n。* 思路:第一步求这两个数的异或,第二步统计异或结果中1的位数*@author: Administrator*@date: 2017-1-13 下午09:39:25*/import java.util.Scanner;public class Solution4 {public int CountDifference

【计算机组成原理】详细解读无符号整数的表示与运算

定点数的编码表示与运算 导读一、无符号整数1.1 无符号整型的取值范围1.2 数据在内存中的存储1.3 小结 二、无符号整数的运算2.1 无符号整数的加法2.2 无符号整数的减法2.3 小结 结语 导读 大家好,很高兴又和大家见面啦!!! 在上一篇内容中我们介绍了BCD码的相关内容: BCD码是用二进制编码的十进制数,通常用4位二进制数表示一位十进制数码;8421码是一种

IEEE的浮点数表示

IEEE浮点标准用V=(-1)^s*M*2^E 由符号,尾数,阶码表示 32位单精度 单精度 二进制小数,使用32位存储。 1 8 23 位长 +-+--------+-----------------------+ |s| exp | fraction | +-+--------+-----------------------+ 31 30 23 22 0 位

[学习笔记]《CSAPP》深入理解计算机系统 - Chapter 3 程序的机器级表示

总结一些第三章的一些关键信息 Chapter 3 程序的机器级表示结构 updating... Chapter 3 程序的机器级表示 局部变量通常保存在寄存器中,而不是内存中,访问寄存器比内存快的多. 有些时候,局部数据必须存放在内存中, 寄存器不足够存放所有的本地数据对一个局部变量使用地址运算符 &, 因此必须能够为它产生一个地址某些局部变量是数组或结构,因此必须能够通过数组或

CSS中表示长度的单位有哪些?有什么区别?

CSS中有px、em和rem三个长度单位。px是固定像素,不随页面大小变化;em和rem是相对长度单位,em相对于父元素,rem相对于根元素(html)。 在响应式布局中,rem更常用,因为它只有一个参照物,计算更清晰。 在css中单位长度用的最多的是px、em、rem,这三个的区别是: px是固定的像素,一旦设置了就无法因为适应页面大小而改变。 em和rem相对于px更具有灵活性,他

LaTeX各符号表示方式(持续更新~)

- "\mu":穆 miu - "\sigma":西格玛xigema - "\lambda":兰姆达或拉姆达lamuda - "\alpha":阿尔法aerfa - "\beta":贝塔beita - "\gamma":伽马 gama- "\pi":派 - "\theta":西塔或者泰塔xita - " \epsilon"-"\chi":希腊字母,读卡或者希-"\rho":希腊字母,肉  :下标

工具方法 - 如何对他人表示尊重

在与他人交往或合作中,表达足够的尊重是建立和维持健康关系的关键。以下是一些有效的方法: 1. 倾听和回应:认真倾听对方的意见和感受,给予积极的回应。避免打断对方,让他们有机会完整地表达自己的想法。 2. 保持礼貌:使用礼貌用语,如“请”、“谢谢”、“对不起”等,表达你的礼貌和尊重。 3. 关注非语言沟通:保持眼神交流,点头示意,展示积极的肢体语言,表示你对对方的关注和尊重。