num

社区发现可视化(python3+networkx)

不羁的心 提交于 2020-01-29 06:25:44
网上搜了一些社区发现可视化的代码,发现GitHub上有几个不错的可视化案例,如 https://github.com/networkanddatasciencelab/SNA-Community-Detection https://github.com/networkanddatasciencelab/Network_Analytical_Notebooks https://github.com/networkanddatasciencelab/HIN_Community_Detection 这些效果比较好,但是都用了一些其他的包,比如 igraph (安装这个包经常会出问题,我就是因为没有装好就不想用它的画图布局了,然后自己写了这个代码)。 代码里面的配色方案可以参考这篇文章: 设计师必备,101个最佳配色方案! (注:这里面的配色都是16进制的,如果用于PPT等RGB颜色设置的话,需要进行颜色转换,网上有很多颜色码转换工具,如 https://www.sioe.cn/yingyong/yanse-rgb-16/ ) 这是原图 这是采用贪婪算法检测社区之后的可视化效果 代码如下 import networkx as nx import numpy as np import matplotlib . pyplot as plt from matplotlib import cm

harry -学习数据分析资金分配

柔情痞子 提交于 2020-01-29 05:48:25
import random import matplotlib . pyplot as plt import matplotlib as mpl mpl . rcParams [ 'font.sans-serif' ] = [ 'KaiTi' ] mpl . rcParams [ 'font.serif' ] = [ 'KaiTi' ] num = 10 p = [ 100 ] * num # person print ( p ) ax = plt . subplot ( 1 , 1 , 1 ) for d in range ( 5000 ) : for i in range ( num ) : p [ i ] -= 5 for i in range ( num ) : p [ random . randint ( 0 , num - 1 ) ] += 5 # p.sort() ax . cla ( ) ax . bar ( range ( num ) , p ) plt . title ( '第%d次分钱' % d ) plt . pause ( 0.01 ) print ( p ) import random import matplotlib . pyplot as plt plt . rcParams [ 'font.sans-serif' ] = [ 'Arial

循环结构程序设计

一世执手 提交于 2020-01-29 04:00:07
1.位数 输入一个不超过10^9的正整数,输出它的位数.例如12735的位数是5.请不要使用任何数学函数,只用四则运算和循环语句实现. #include<iostream> using namespace std; int main() { float maxmal= 1000000000; int a=234234,i=0,b=1,t=1; while(b>=1){ b=a/t; t=t*10; if(b>=1){ i++; } } cout<<i<<endl; return 0; } 2.水仙花数 输出(100-999)中的所有水仙花数.若3位数abc满足abc=a^3+b^3+c^3,则称其为水仙花数.例如153=1^3+5^3+3^3,所以153是水仙花数. #include<iostream> using namespace std; int main() { int a ,b,c,i; for(i=100;i<1000;i++){ a = i/100; b = i/10%10; c = i%10; if(i==a*a*a+b*b*b+c*c*c) { cout<<i<<endl; } } return 0; } 3.韩信点兵 相信韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只要掠一眼队伍的排尾就知道总人数了

PAT_A1042 | Shuffling Machine

五迷三道 提交于 2020-01-29 02:58:24
1042 Shuffling Machine (20分) Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techniques are seen as weak, and in order to avoid "inside jobs" where employees collaborate with gamblers by performing inadequate shuffles, many casinos employ automatic shuffling machines . Your task is to simulate a shuffling machine. The machine shuffles a deck of 54 cards according to a given random order and repeats for a given number of times. It is assumed that the initial status of a card deck is in the following order: S1, S2, ..., S13, H1, H2, ..., H13, C1, C2

[ZJOI2006]书架

我的梦境 提交于 2020-01-29 02:03:05
#include<bits/stdc++.h> #define MAXN 400005 using namespace std; int n,q,a,b; string tp; int date[MAXN],bianhao[MAXN]; struct Splay{ int num[MAXN],ch[MAXN][2],sz[MAXN],f[MAXN],cnt[MAXN],rt,tot,tag[MAXN]; int get(int x){ return (x==ch[f[x]][1]); } int up(int x){ sz[x] = cnt[x]; if(ch[x][0])sz[x] = sz[x]+sz[ch[x][0]]; if(ch[x][1])sz[x] = sz[x]+sz[ch[x][1]]; return 0; } int rote(int x){ int y = f[x],z = f[y],k = get(x),p = get(y); if(y==0)return 0; if(z)ch[z][p] = x; if(ch[x][k^1])f[ch[x][k^1]] = y; ch[y][k] = ch[x][k^1]; ch[x][k^1] = y; f[x] = z; f[y] = x; up(y);up(x); return 0; } int splay(int

并查集

邮差的信 提交于 2020-01-29 01:43:16
1、并查集是什么 并查集是用来在一个集合中进行元素搜索,或者将集合合并的一种方法。主要通过数组来实现。 2、并查集的实现思路 我们可以将一个数组中每个单位存储的元素初始化为它的下标,代表初始时它的编号就是它自己。在之后的操作中,如果两个集合合并,那么就将其中一个集合编号所在的数组位置修改为另一个集合编号作为代表。这时,当我们搜索到这两个集合时,会发现它们的编号相同,即属于同一个集合。 3、代码实现 并查集主要有以下的几个操作 初始化 for ( int i = 0 ; i < n ; i ++ ) //n为集合编号的最大值 num [ i ] = i ; 查询操作 int find ( int x ) { int head = x ; while ( num [ head ] != head ) //查询所有集合中最终的编号 head = num [ head ] ; while ( x != num [ x ] ) //路径压缩,缩短下次搜索的时间 { x = num [ x ] ; num [ x ] = head ; } return head ; } 合并操作 void join ( int a , int b ) //将两个集合合并 { int a1 = find ( a ) ; int b1 = find ( b ) ; num [ a1 ] = b1 ; while

模块二、shell脚本逻辑结构

核能气质少年 提交于 2020-01-29 01:19:23
七、if结构条件句知识与实践 (一)if条件句单双分支语法 1、单分支 if 条件 then 指令 fi 2、双分支 if 条件 then 指令 else 指令集2 fi (二)if条件句多分支语句 if 条件1 then 指令1 elif 条件2 then 指令2 elif 条件3 then 指令3 else 指令4 fi 实例: 如果不存在目录/backup,则创建。 [root@centos6-kvm3 scripts]# cat 07-01.sh #!/bin/bash path="/backup" [ -d $path ] || mkdir $path -p if [ -d $path ] then : else mkdir $path -p fi if [ !-d $path] then mkdir $path -p fi [root@centos6-kvm3 scripts]# 开发shell脚本判断内存是否充足,如果小于100,提示不足,如果大于100提示充足。 [root@centos6-kvm3 scripts]# cat 07-02.sh #!/bin/bash mem=`free -m | awk 'NR==3{print $NF}'` if [ $mem -lt 100 ] then echo "内存不充足!" else echo "内存充足!" fi

手把手创建自己的数据集:类似cifar10数据结构的数据集

南笙酒味 提交于 2020-01-29 01:16:01
前言: 我们在跑神经网络时,通常使用的都是别人已经整理好的数据集,如MNIST、CIFAR10、CIFAR100等,但是在实际的应用中,往往需要根据实际的问题创建对应该问题的数据集,这就需要用自己的图片创建一个类似CIFAR10的数据集。如果我们创建的数据集格式和CIFAR10的格式一样的,那么所创建的数据集将很容易地输入到原有的神经网络,而无需改动太多的结构。 1、首先查看CIFAR10数据集是长什么样子的? CIFAR10经过解压后会得到cifar-100batches-py的文件夹,如下图所示: 通过dataset2Image.py文件可以将以上的数据batch解压成图片 #import cPickle import pickle def unpickle(file): with open(file, 'rb') as fo: #dict = cPickle.load(fo) dict = pickle.load(fo, encoding='iso-8859-1') # encoding='bytes' #dict = pickle.load(fo, encoding='bytes') return dict if __name__ == '__main__': #print (unpickle('train_batch_video')) print(unpickle(

342. 4的幂

孤者浪人 提交于 2020-01-29 00:55:19
给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。 示例 1: 输入: 16 输出: true 示例 2: 输入: 5 输出: false 进阶: 你能不使用循环或者递归来完成本题吗? 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/power-of-four 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 mod4为0,不停除4,结果为1则返回true,反之为false,注意特殊值0; class Solution { public boolean isPowerOfFour(int num) { if (num == 0) return false; while ( num % 4 == 0 ) num /= 4; return num==1; } } 来源: CSDN 作者: namesocool 链接: https://blog.csdn.net/namesocool/article/details/103966921

leetcode(6)--有效的字母异位词

谁说胖子不能爱 提交于 2020-01-28 23:01:15
题目: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 说明: 你可以假设字符串只包含小写字母。 进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况? 解答: 思路: 字母异位词,应该满足字符长度相同,并且包含相同的字母。因此可以比较所包含字母出现的次数是否形同; 受上一题的启发,定义两个数组分别保存两个字符串中所包含字母的个数;然后比较每个字母在两个字符串中出现次数是否相等; class Solution { public: bool isAnagram(string s, string t) { if(s.size()!=t.size()) return false; int s_num[26] = {0}; int t_num[26] = {0}; for(int i=0;i<s.size();i++) { s_num[s[i]-'a']++; t_num[t[i]-'a']++; } for(int j=0;j<s.size();j++) { if(s_num[s[j]-'a'] != t_num[s[j]-'a'])