生成若干個隨機數等於某個指定的和

2022-02-18 07:16:20 字數 2004 閱讀 4661

背景是來自博問,就趁手寫了寫**,是實話有點緊張了,畢竟是有人看的,急於回覆,言語有些不嚴謹,圖還畫錯了乙個地方,程式的初始值是0,人為習慣寫成了1,反反覆覆回覆了一遍,被反對了一下,原本是支援的....

所以對自己剛剛的表現不是很滿意,於是又優化了一下重新回答了那個人,並得到了青睞,算我自作多情吧,也許別人只是借鑑了下思路,廢話不多說,上code!

static

void main(string

args)

while

(list.contains(v));

list.add(v);

}list.sort();

console.writeline(curr-list[list.count-1

]);

for (int i = list.count-1; i >=1; i--)

console.writeline(list[

0]-0

); }

resultlist是結果集合,為了輸出具體數字就沒多事存集合了,真正用到的時候會存到集合裡
int index = ir.next(1,10);//畢竟個數不能寫死,這樣就不好玩了,回答別人博問的最後答案沒有這個,是寫死的,不過她應該自己能改過來吧,我對自己不滿意也就沒臉繼續去回覆了~
do

while (list.contains(v));//隨機會存在重複的問題,因此做個do-while處理一下,呵呵,記得今年在某個地方寫**這裡還出現過死迴圈,這樣一說這裡還是有死迴圈漏洞的,應該加個迴圈次數限制,萬一真的達到某個條件就一直迴圈呢,那就尷尬大了

list.sort();//線段之間的點是需要按順序來的,可惜不能倒敘,不然下面的for也不必i--了,說實話i--反著來還是第一次,挺不習慣
console.writeline(curr-list[list.count-1]);

for (int i = list.count-1; i >=1; i--)

console.writeline(list[0]-0);//輸出頭尾的**看著很**觀,沒辦法, 要想在乙個for裡輸出估計又要加邏輯,何必呢,簡單來,**觀的地方封裝成方法摺疊嘛。

上面是圖,下面是博問擷取的內容,錯誤的地方修飾了一下

設數字為n,和的範圍為1-n。

1-n之間是若干節點(位置),假設為a,b,c。

線的長度是n,n的長度=各個線段的和

也就是n=(n-c)+(c-b)+(b-a)+(a-0);

so,可以得出n-c、c-b、b-a、a-0就是你要的數。

同理,可以根據自己的需要改成a...n-1個節點

怎麼說呢,算是一次經驗和教訓吧,希望自己以後再回答別人問題時不要急於求成,寫好了demo再給人家,減少別人的問題,當然授人以魚不如授人以漁,思路也很重要,給思路是給別人的,給原始碼其實除了方便別人,也是對自己的鍛鍊吧,有些東西只是想一想不寫出來,和親自去實踐一下,還是有很大區別的。

就不發首頁了,指不定被踢下來,不過說實話這種經歷還是想讓更多人看到的,畢竟有問題也能一起交流交流,算了,家醜不外揚,自己知道就好,嗯,挺好的,就這樣!

續:輸出的值之間差不能太大,所以重新寫了

static

void main(string

args)

} while (!(intlist.sum() >= mutil -du));

intlist.add(mutil -intlist.sum());

foreach (var item in

intlist)

console.writeline(

"集合值:

"+intlist.sum());

}

每次新增10以內的值,在最後一次「可能」 新增滿的時候停止迴圈,然後根據總數做減法得出最後乙個值。

生成若干個不重複的隨機數陣列

在start end之間生成n個不重複整數陣列 建立乙個start到end的陣列,隨機的去除陣列的下標,將其對應的值取出,如此反覆,這樣就可以實現永不重複。function fn n,start,end for let j 0 j改進方法一種的splice,從陣列中取出乙個數,然後讓該位置置為nul...

生成指定範圍的隨機數 生成某個範圍的隨機數

每次進行將本地 提交到遠端的時候總會要求輸入賬號和密碼 git push origin master 而且會彈出以下介面 我輸入賬號和密碼,明明是對的,卻提示登陸失敗 logon failed,use ctrl c to cancel basic credential prompt.會彈出這個登陸框...

生成指定位數的隨機數

輸入 要生成的隨機數的位數 輸出 隨機數 因為是32位系統,因此只能生成9位長度的10進製數。如果是10位的話可能會出現負數。溢位。c sharp view plain copy print?include include include include long myrand intn if n ...