程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 編程-算法問題:n組對象配對,最終均不配對的結果總數是多少?

編程-算法問題:n組對象配對,最終均不配對的結果總數是多少?

編輯:編程解疑
算法問題:n組對象配對,最終均不配對的結果總數是多少?

詳細說明:

有n組已經一一配對的人,現在隨機分組,重新一對一分配,求最終每個新分組都與之間不同(每個人配對的新人都與之前不同,不能存在其中某些人的分組沒有變化的情況)的可能情況總數。(分組內外部均沒有先後次序區別)

我的思路:

第一個人可以有n-1個選擇,假設他選擇了B,那麼原本與B配對的人下一個選擇,他有n-1個選擇,然後假設他選擇了C,原本與C配對的人下一個選擇,他有n-2過選擇……,最終結果是:(n-1) * (n-1)!


當然,結果是我是錯的……

求問:

應該如何計算?我的思路錯在哪裡?

編程問題,所以程序解決思路也可以,不過我主要想知道數學原理。

最佳回答:


將問題理解成1,2,3...n的錯位排列:1,2,3...n重排,k不在第k個位置上。記Si為有i個數在原來位置上的排列,個數為n!/(i!(n_i)!)=n!/i!。#表示乘號。即i個數在原位上,剩下的數全排,剩下的數在不在原位上無所謂,因為容斥原理,錯排個數為n!_n!/1!+n!/2!_...+n!/n! (_1)#. #表示乘方

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved