台灣最大程式設計社群網站
線上人數
1030
 
會員總數:246213
討論主題:189783
歡迎您免費加入會員
討論區列表 >> Java >> 請教『隨機顯示,但要取得"不重覆"』
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請教『隨機顯示,但要取得"不重覆"』
價值 : 500 QP  點閱數:3781 回應數:34
樓主

逃咖小巴蕊
門外漢
0 2
126 19
發送站內信

我現在是使用js與htm分開的方式,

js存成imgjs.js,
取得隨機的方式為:

today=new Date();
jran=today.getTime();
function rnd() {
ia=9301;
ic=49297;
im=233280;
jran = (jran*ia+ic) % im;
return jran/(im*1.0);
};
function rand(number) {
return Math.ceil(rnd()*number);
};
document.write("<center>");
for(i=1;i<=1;i++) {
myNum=(rand(51)); //隨機顯示的圖片數;
if(myNum == 1) document.write("<a href='http://xxx1.com' target='_blank'><img src='http://xxx/01.jpg' width='270' height='300'></a>");
if(myNum == 2) document.write("<a href='http://xxx2.com' target='_blank'><img src='http://xxx/02.jpg' width='270' height='300'></a>");
if(myNum == 3) document.write("<a href='http://xxx3.com' target='_blank'><img src='http://xxx/03.jpg' width='270' height='300'></a>");
...
...
...
if(myNum == 51) document.write("<a href='http://xxx51.com' target='_blank'><img src='http://xxx/51.jpg' width='270' height='300'></a>");
else {
document.write();
}
};
document.write("</center>");

htm存為一個檔,
在要顯示圖片的地方加入:

<script src="js/imgjs.js"></script>

在顯示方面沒問題了,但不懂得怎麼取得不重覆的方法…求教!

搜尋相關Tags的文章: [ 隨機 ] , [ 不重覆 ] ,
本篇文章發表於2015-04-27 14:04
1樓
作者回應

逃咖小巴蕊
檢舉此回應
在htm檔中,
使用了不止一個的<script src="js/imgjs.js"></script>來顯示,
但重覆的機率太高…
本篇文章回覆於2015-04-27 14:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

香帥
檢舉此回應
請參考
http://www.blueshop.com.tw/board/show.asp?subcde=BRD201205081443261E5&fumcde=BRD201205081443261E5
我2樓的解答
本篇文章回覆於2015-04-27 14:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

逃咖小巴蕊
檢舉此回應
香帥您好,您的回覆我有去看過了,
但不好意思,我是初學者,
所以有看沒有懂,
無法在原程式碼內去增加判斷嗎?
本篇文章回覆於2015-04-27 15:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

香帥
檢舉此回應
晚點再幫您改為js
本篇文章回覆於2015-04-27 15:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

逃咖小巴蕊
檢舉此回應
好的,非常謝謝您
本篇文章回覆於2015-04-27 15:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

香帥
檢舉此回應
請參考以下程式碼


本篇文章回覆於2015-04-27 16:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

逃咖小巴蕊
檢舉此回應
香帥,
所以我是要把程式碼修改至imgjs.js內,
在htm裡顯示貼圖的<script src="js/imgjs.js"></script>不變是嗎?
還是這些是要修改至htm裡的?
本篇文章回覆於2015-04-27 17:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

香帥
檢舉此回應
放在哪裡都可以
至於貼圖程式碼如第16行,去取代您冗長的51行if判斷
本篇文章回覆於2015-04-27 17:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

逃咖小巴蕊
檢舉此回應
那是以圖片路徑在相同的情形及檔名不同的情形下的縮減,
如果圖片是在不同的路徑底下,而檔名有相同,
就無法這樣縮減了…我這樣的理解正確嗎?
本篇文章回覆於2015-04-27 17:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

逃咖小巴蕊
檢舉此回應
那關於也有變化的連結網址部份,此代碼也不適用了
本篇文章回覆於2015-04-27 18:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

香帥
檢舉此回應
那是以圖片路徑在相同的情形及檔名不同的情形下的縮減,
如果圖片是在不同的路徑底下,而檔名有相同,
就無法這樣縮減了…我這樣的理解正確嗎?
理解正確
那關於也有變化的連結網址部份,此代碼也不適用了
是的
不過還是看您會不會靈活運用
如果您那是有規律的網址,也是可以運算用字串 +
若是不規則,也可以將網址存在檔案,再讀入陣列,同樣迴圈,也是一行程式碼就可以,不宜像您那樣數十行if的判斷式




本篇文章回覆於2015-04-27 19:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

逃咖小巴蕊
檢舉此回應
將網址存在檔案,再讀入陣列...
這個部份不太懂..
求詳解...
本篇文章回覆於2015-04-27 20:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
不錯的參考

香帥
檢舉此回應
首先您用記事本編輯一個檔案例如read.txt 內容如下
連結網址,連結圖片(以下配合亂數值順序不規則的連結給值)逗號為分隔符號
http://xxx1.com/,http://xxx/01.jpg
http://xxx2.com/,http://xxx/02.jpg
http://xxx3.com/,http://xxx/03.jpg
http://xxx4.com/,http://xxx/04.jpg
http://xxx5.com/,http://xxx/05.jpg
http://xxx6.com/,http://xxx/06.jpg
http://xxx7.com/,http://xxx/07.jpg
http://xxx8.com/,http://xxx/08.jpg
http://xxx9.com/,http://xxx/09.jpg
http://xxx10.com/,http://xxx/10.jpg
http://xxx11.com/,http://xxx/11.jpg
http://xxx12.com/,http://xxx/12.jpg
http://xxx13.com/,http://xxx/13.jpg
http://xxx14.com/,http://xxx/14.jpg
http://xxx15.com/,http://xxx/15.jpg
http://xxx16.com/,http://xxx/16.jpg
http://xxx17.com/,http://xxx/17.jpg
http://xxx18.com/,http://xxx/18.jpg
http://xxx19.com/,http://xxx/19.jpg
http://xxx20.com/,http://xxx/20.jpg
http://xxx21.com/,http://xxx/21.jpg
http://xxx22.com/,http://xxx/22.jpg
http://xxx23.com/,http://xxx/23.jpg
http://xxx24.com/,http://xxx/24.jpg
http://xxx25.com/,http://xxx/25.jpg
http://xxx26.com/,http://xxx/26.jpg
http://xxx27.com/,http://xxx/27.jpg
http://xxx28.com/,http://xxx/28.jpg
http://xxx29.com/,http://xxx/29.jpg
http://xxx30.com/,http://xxx/30.jpg
http://xxx31.com/,http://xxx/31.jpg
http://xxx32.com/,http://xxx/32.jpg
http://xxx33.com/,http://xxx/33.jpg
http://xxx34.com/,http://xxx/34.jpg
http://xxx35.com/,http://xxx/35.jpg
http://xxx36.com/,http://xxx/36.jpg
http://xxx37.com/,http://xxx/37.jpg
http://xxx38.com/,http://xxx/38.jpg
http://xxx39.com/,http://xxx/39.jpg
http://xxx40.com/,http://xxx/40.jpg
http://xxx41.com/,http://xxx/41.jpg
http://xxx42.com/,http://xxx/42.jpg
http://xxx43.com/,http://xxx/43.jpg
http://xxx44.com/,http://xxx/44.jpg
http://xxx45.com/,http://xxx/45.jpg
http://xxx46.com/,http://xxx/46.jpg
http://xxx47.com/,http://xxx/47.jpg
http://xxx48.com/,http://xxx/48.jpg
http://xxx49.com/,http://xxx/49.jpg
http://xxx50.com/,http://xxx/50.jpg
http://xxx51.com/,http://xxx/51.jpg

然後用參考下程式碼


測試網址在http://ap.a168a.com/blueshop/rand/rnd5.htm
本篇文章回覆於2015-04-28 02:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
作者回應

逃咖小巴蕊
檢舉此回應
香帥,再請教一下,
所以當我的數量不是為51的時候,
就是去將程式碼內跟51有相關的部份做修改囉?
本篇文章回覆於2015-04-28 14:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
回應

香帥
檢舉此回應
所以當我的數量不是為51的時候,
就是去將程式碼內跟51有相關的部份做修改囉?
是的,更好的寫法是將
51改用變數,隨時調整一個變數就好,就不必調整三個地方
本篇文章回覆於2015-04-28 14:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.