计算机辅助解题
1. 復(fù)雜的組合問題
- 2 個(gè)人各自拿著 A~K 的 13 張牌,每次按順序,一人出一張,13 輪結(jié)束,每次出的都不是相同數(shù)字的概率,
13 張牌,情況較為復(fù)雜,我們首先考慮 3 張牌的情況,已知自己是 1,2,3,則要求對方在各個(gè)位置上都與自己不同,只有兩種選擇,3,1,2 和 2,3,1。
#include <algorithm> // next_permutation(...)// 13 張牌的情況較多 int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8}; int tmp[] = { 1, 2, 3, 4, 5, 6, 7, 8}; int cnt = 0;do {for (int i = 0; i < 8; ++i) {if (arr[i] == tmp[i]) {++cnt;break;}}} while (next_permutation(tmp, tmp + 8));cout << cnt << endl;2. 數(shù)三角形的個(gè)數(shù)
我們不采用做奧數(shù)題的思路,而是編程求解:
matrix = [['A', 'A', 'A', 'A', 'A', 'A'],['B', 'C', 'D', 'E', 'F', 'G'] ]def pair(lis):n = len(lis)for i in range(n):for j in range(i+1, n):yield lis[i], lis[j]triangles = [] for line_a, line_b in pair(matrix):for i, j in pair(range(len(line_a))):shape = [line_a[i], line_a[j], line_b[i], line_b[j]]shape.sort()for node_a, node_b in pair(shape):if node_a == node_b and shape not in triangles:triangles.append(shape) print(triangles) print(len(triangles))# 可得 15再考慮如下的較為復(fù)雜的圖形:
此時(shí),只需修改上述代碼的:
matrix = [['A', 'A', 'A', 'A'],['B', 'C', 'D', 'E'],['H', 'G', 'F', 'E'], # 右上斜向左下的線段['H', 'I', 'J', 'K'] ]轉(zhuǎn)載于:https://www.cnblogs.com/mtcnn/p/9423530.html
總結(jié)
- 上一篇: spring task 定时
- 下一篇: Vue.js组件学习