Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 2871|回復: 3
打印 上一主題 下一主題

求解~抽籤

[複製鏈接]
1#
發表於 2018-5-5 16:01:00 | 顯示全部樓層
1. 簡單方法
宣告一個6bytes的陣列, 初始值都是7
如果抽到某個數字,就看該陣列值是否為0
如果是0,就重抽,否則就把值減 1


2. 複雜方法
宣告一個42bytes的陣列
初始值 前 7個是 1,再來 7 個是 2...最後7個是 6
第一次取 0~41 的亂數,例如2,得到陣列值為1
再拿陣列尾端41的值和抽中的值交換,
所以陣列2的值變成6
第二次取 0~40 的亂數,例如39,得到陣列值為6
再拿陣列尾端40的值和抽中的值交換,
所以陣列39的值變成6
第三次取 0~39 的亂數,
再拿陣列尾端39的值和抽中的值交換
第四次取 0~38 的亂數,
再拿陣列尾端38的值和抽中的值換
........
第42次直接取陣列0 的值
2#
發表於 2018-5-5 16:12:38 | 顯示全部樓層
本帖最後由 超新手 於 2018-5-5 20:00 編輯

或是用洗牌方法
宣告一個 42 bytes陣列
初始值 7個1,7個2...7個6
先選2個 0到 41的亂數,把這兩個值當指標的
陣列值互換, 依此方式連續做個幾百次,
就算洗牌完成
然後依次輸出陣列第 0筆到第41筆的值即可
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-8 01:31 , Processed in 0.034795 second(s), 6 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表