[討論]請教一個具有限制條件的問題已回收

看板MATLAB作者 (閒情)時間14年前 (2011/09/02 11:33), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/5 (看更多)
小弟初接觸程式設計,之前解到一個問題,已經有初步的構想, 但是遇到瓶頸想請各位高手大哥大姐解惑 -- 題目: 有一台機器 它開機運轉後的運轉時間不能低於三小時,但是可以一直運轉, 其時間無上限;一樣的,它停機的時間也不能低於三小時,但是停機後可以一直停機 時間也無上限,請列出在五個小時裡面此機器的所有排列可能性 (超過五小時則忽視),但是一開始要符合規定 我舉個解答的例子: 00000 是可以的,因為它一直停機 00011 是可以的,因為它開機之後一直運轉 11100 是可以的,因為它關機之後就一直維持關機 11101 不可以,因為它關機一小時之後就開機,不符合關機最短3小時的規定 00010 也是不可以,理由同上 附上我的m檔 -------- clear all fprintf('---------------\n') count=0; r=input('Enter unit minima up/down time = '); %設定開關機時間r 以及其他可以修改的變數s t u v 初期=r s=r; t=r; u=r; v=r; for i=(2^5-1):-1:0 x=dec2bin(i,5); for i=1:(s-1) a=x(i); b=x(i+1); c=strcmp(a,b); if c==1 count=count+1; if count>=(t-1) %如果計數器次數=開/關機時間的間隔 則印出計數器以及x值 fprintf('在 x = %s 時,內圈 counter =%d, %d 小時驗證通過 \n' ,x,count,r) count=0; end elseif c==0 count=0; end end end -------- 我是利用計數器cpunter檢查是否符合,但是限制條件不夠,我只能檢查前三個位元 後面的瑕疵就不知道要怎麼檢查了..... (原始題目是要列出一天24小時此機器的可能性) 煩請高手跑跑看並解惑,謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.206.41 ※ 編輯: roger7667 來自: 140.118.206.41 (09/02 11:35) ※ 編輯: roger7667 來自: 140.118.206.41 (09/02 13:14)
文章代碼(AID): #1EO4wQ60 (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1EO4wQ60 (MATLAB)