教えてくださいm(__)m
タイトルの通り、0~100の数字の9の倍数だけ同じ文字、他はランダムになるようにするにはどうやって組み立てたらいいのでしょうか?
0~100の数字のうち、9、18、27、36、45、54、63、72、81、90、99だけ同じ文字(例えばA)が表示されるようにしたいのです。でも更新するたび、ランダムに文字(例えばB)が変わります。
その数字は適当な文字(9の倍数以外の文字)がランダムに表示されます。
http://search.net-newbie.com/php/function.array- …
↑のように「array_rand」を使えばいいと思うのですが・・よくわからず・・・(>0<)
どういう風にプログラムを書いたらいいのでしょうか。
分かる方いましたら、お願いしますm(__)m
No.8ベストアンサー
- 回答日時:
TMEspionと申します。
質問者さんのコメントから察するにNo.4さんのコメントが一番要望に近いようなので、失礼かもしれませんが、No.4さんのソースを少し手直ししてみました。
//表示する文字
$array = array("A","B","C","D","E","F","G","H");
//表示する文字の個数
$count = count($array);
//★1から8ではなく0から7にすべきかと?(空欄の出る原因?)
$count = $count-1;
//9の時に表示する文字の番号
//★常に同じものを表示するならこれでも良いのでは?
$var9 = "Z";
//0~100まで繰り返す
for ($i=0 ; $i<100 ; $i++){
//$iが9の倍数の時に処理する。
if(floor($i/9) == ($i/9) && $i != 0){
//9の倍数の時に入る文字を入れる
$moji = $var9;
//$iが9の倍数以外の場合
}else{
//ランダムで表示する文字の番号
$var = rand(0,$count);
//もし9の倍数の時に入る文字とランダムで表示する文字の番号が同じ時のみループ
while ($var == $var9) {
//ランダムで表示する文字の番号
$var = rand(0,$count);
}
//文字を入れる
$moji = $array[$var];
}
//文字を出力する。
echo $i.":".$moji."<BR>";
}
こんな感じで要望通りに動きませんかね?
No.7
- 回答日時:
こんな感じでよいのでは?
<?PHP
for ($i=0;$i<=99;$i++){
$a[$i]=($i>9 and $i%9==0)?$a[9]:chr(mt_rand(65,90));
}
foreach ($a as $key=>$val){
print $key.":".$val."<br>";
}
?>
No.6
- 回答日時:
回答No.5 余計に書きすぎでした。
訂正します。<?php
function ascii($random=0){
for ( $i=0x41; $i<=0x5a; $i++ ) {
$char[] = chr($i);
}
$random = mt_rand(0, 25);
return $char[$random];
}
//9の倍数:固定
$baisu = ascii();
for($i=1; $i<=100; $i++){
if($i%9==0){
echo "$i : $baisu\n";
}
else{
echo "$i : ".ascii()."\n";
}
}
?>
No.5
- 回答日時:
使用文字の指定を独自に設定しています。
この仕様で要望にかなっているかどうか??
<?php
/*[0-9],[a-z].[A-Z]の62文字(追加又は削除したい文字があればASCIIコード表を参考にして編集下さい)を配列に入れてランダム関数から取得 */
function ascii(){
for ( $i=0x30; $i<=0x39; $i++ ) {
$char[] = chr($i);
}
for ( $i=0x41; $i<=0x5a; $i++ ) {
$char[] = chr($i);
}
for ( $i=0x61; $i<=0x7a; $i++ ) {
$char[] = chr($i);
}
$random = mt_rand(0, 61);
echo $char[$random];
}
function ascii2($num){
for ( $i=0x30; $i<=0x39; $i++ ) {
$char[] = chr($i);
}
for ( $i=0x41; $i<=0x5a; $i++ ) {
$char[] = chr($i);
}
for ( $i=0x61; $i<=0x7a; $i++ ) {
$char[] = chr($i);
}
$random = mt_rand(0, 61);
return $char[$random];
}
//9の倍数の表示
$baisu = ascii2(1);
for($i=1; $i<=100; $i++){
if($i%9==0){
echo "$baisu\n";
}
else{
ascii();
}
}
?>
この回答への補足
お返事ありがとうございます!行き違いになっていたようですね^^
私の書き方が曖昧だったのですが、0~99までの数字でしたので、
//0~99まで繰り返す に変更して行ってみました。
0:G
1:E
2:
3:C
4:
5:H
6:B
7:B
8:A
9:G
10:C
11:D
12:E
13:F
14:D
15:H
16:B
17:E
18:G
19:F
20:C
21:C
22:
23:C
24:E
25:A
26:D
27:G
28:A
29:C
30:B
31:H
32:B
33:A
34:
35:B
36:G
37:H
38:A
39:E
40:B
41:
42:H
43:B
44:H
45:G
46:
47:F
48:D
49:B
50:C
51:B
52:D
53:C
54:G
55:E
56:H
57:C
58:H
59:
60:E
61:A
62:C
63:G
64:B
65:A
66:B
67:
68:
69:B
70:E
71:B
72:G
73:
74:E
75:
76:A
77:C
78:H
79:A
80:
81:G
82:H
83:E
84:B
85:C
86:D
87:E
88:B
89:C
90:G
91:A
92:B
93:
94:C
95:D
96:D
97:E
98:C
99:G
更新を押すとランダムに変更しております!!
気になるのは・・・空欄が出来るのは何故なのでしょうか・・・(><)
お返事ありがとうございます!!!!
↑の回答はNO4の方へのものでした。間違えてしまい申し訳ありません(><)
教えていただいたものを試しましたが、
keBFDTWaN oLUnDLFqN ZMZ9n4PzN 9bWRPwt4N CjOhllFON kmR16vzrN 2UeRxSLRN koUV7AqsN dHtpI3CiN tah2QUoEN L3cTmQTxN E
という表示になってしまいました。。
数字:ローマ字の大文字
という表示にさせたいので、ちょっといじってみますね!
ありがとうございましたm(__)m
No.4
- 回答日時:
No.3ですが、ちょっと読み間違えてました
//表示する文字
$array = array("A","B","C","D","E","F","G","H");
//表示する文字の個数
$count = count($array);
//9の時に表示する文字の番号
$var9 = rand(0,$count);
//0~100まで繰り返す
for ($i=0 ; $i<=100 ; $i++){
//$iが9の倍数の時に処理する。
if(floor($i/9) == ($i/9)){
//9の倍数の時に入る文字を入れる
$moji = $array[$var9];
//$iが9の倍数以外の場合
}else{
//ランダムで表示する文字の番号
$var = rand(0,$count);
//もし9の倍数の時に入る文字とランダムで表示する文字の番号が同じ時のみループ
while ($var == $var9) {
//ランダムで表示する文字の番号
$var = rand(0,$count);
}
//文字を入れる
$moji = $array[$var];
}
//文字を出力する。
echo $i.":".$moji."<BR>";
}
ではどうでしょうか。
この回答への補足
お返事ありがとうございますm(__)m
先程間違えてNO5番の方の補足のところへ書いてしまいました(><)
試してみるとあのような表示になり、何故か空欄ができる場所があります。何故なんでしょうか・・・。
No.3
- 回答日時:
$array = array("A","B","C","D","E");
$count = count($array);
for ($i=0 ; $i<=100 ; $i++){
if(floor($i/9) == ($i/9)){
$moji = "Z";
}else{
$var = rand(0,$count);
$moji = $array[$var];
}
echo $i.":".$moji."<BR>";
}
こんな感じでしょうか?
今ちょっとPHPを実行できる環境ではないので(^^;)
適当な回答で本当にすみません。
お返事ありがとうございますm(__)m
教えていただいたので、試してみると↓のようになりました。
0:Z
1:
2:
3:D
4:D
5:B
6:E
7:D
8:A
9:Z
10:E
11:C
12:E
13:B
14:A
15:
16:A
17:A
18:Z
19:B
20:D
21:C
22:A
23:
24:C
25:D
26:A
27:Z
28:E
29:A
30:B
31:A
32:A
33:C
34:
35:
36:Z
37:C
38:C
39:C
40:D
41:B
42:A
43:E
44:
45:Z
46:D
47:D
48:B
49:D
50:D
51:B
52:D
53:E
54:Z
55:E
56:
57:E
58:E
59:C
60:C
61:
62:B
63:Z
64:D
65:A
66:B
67:D
68:D
69:A
70:C
71:A
72:Z
73:D
74:
75:E
76:
77:A
78:C
79:
80:D
81:Z
82:A
83:B
84:A
85:D
86:C
87:E
88:C
89:B
90:Z
91:E
92:B
93:A
94:B
95:D
96:
97:C
98:B
99:Z
100:A
9の倍数の所にZがきてました!なんですが、空欄の所がでてきてしまっています・・・。それと更新しても固定されていて、ランダムに変更していませんでした。でもこれを元に考えれます!ありがとうございましたm(__)m
No.2
- 回答日時:
いくつか仕様を確定する必要があるでしょう。
(1)使っていい文字はなにか?
大文字のアルファベットだけとか、数字までよいとか
そういうのがないとなにも始まらないかと。
仮に大文字アルファベットだけとなると、100個も
ないので、ダブりがでてきますがよろしいのですか?
(2)0からなのか1からなのか
題名は1からになっていましたが内容は0からです、
0からだとしたら0は9の倍数ではないのですか?
(3)9の倍数と他のところの排他性
9の倍数がかりにAだとしてその他のところにAは
でてきてもいいのかによってだいぶプログラムが
ことなります。
この回答への補足
お返事ありがとうございますm(__)m
(1)大文字のアルファベットのみと考えています。
ダブりが出ても大丈夫です。
(2)曖昧でごめんなさい!
0~99の数字と考えています。0は9の倍数には入りません。
(3)9の倍数以外の数字にも9の倍数と同じアルファベットが表示され ても問題はありません。
宜しくお願い致しますm(__)m
No.1
- 回答日時:
配列かどうかはおいといて、、、
> 0~100の数字のうち、9、18、27、36、45、54、63、72、81、90、99だけ同じ文字(例えばA)が表示されるよう> にしたいのです。
<?php
$k = "固定値";
for ($i=1; $i<=100; $i++) {
$j = rand();
if ($i%9 == 0) $j = $k;
echo $j."<br>";
}
?>
これではダメなのですか?
何をしたいのか良く理解出来ませんでした^^;
これはアドバイスになりますかね。
この回答への補足
さっそくのお返事ありがとうございますm(__)m
教えていただいたのを試してみたのですが、少し違うようでした。。
私の説明不足ですね・・・(>0<)ごめんなさい!
数字:文字
0:A 1:K 2:P 3:L
4:Q ・・ ・・ ・・
8:E 9:Y 10:R ・・
:
16:T 17:I 18:Y ・・
:
24:R ・・・ ・・ 27:Y ・・・
例えで書いてみましたが、9の倍数の所だけ同じ文字が入っています。他の数字のところの文字はランダムです。
こんな感じで表示させたいのです。
更新を押すたびに9の倍数はランダムに文字が変わります。その時他の数字もランダムに適当な文字になります。
こんな感じで作りたいのですが、どうでしょうか・・・。
もう一度宜しくお願い致しますm(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/07/08 13:46
- Excel(エクセル) エクセルの数式で教えてください。 3 2022/10/25 10:52
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- Visual Basic(VBA) Powerpointでランダムな数字の結果を表示するマクロ 2 2023/08/04 10:04
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
- その他(Microsoft Office) エクセルのマクロを教えてください。 1 2023/01/27 09:05
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/15 08:30
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 16:55
- Visual Basic(VBA) VBA B列にある前から10文字のみ表示 3 2023/08/07 11:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プルダウンメニューにDBの内容...
-
phpのin_array()でわからない事...
-
file_existsでファイル名の部分...
-
配列をループでたくさん宣言し...
-
Resource id #3 と表示されま...
-
スカラーのベクトル微分
-
ヒアドキュメントの中のfor文
-
別ファイルの構造体の値を読み...
-
3つの連想配列を交互に代入し...
-
複数行のデータのPOST処理に関して
-
PHPでテキストファイルの一部を...
-
String だと「 ByRef引数の型が...
-
verilogで、配列の一部をタスク...
-
プルダウンメニューでCSVデータ...
-
PHPのmin関数、「1」以上の数値...
-
phpで、連想配列を普通の配列に...
-
配列を回すとき、最後の要素だ...
-
配列一致(要素順番は違うが内容...
-
C言語で全角文字の扱いについて
-
配列同士の足し算のループ処理
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンメニューにDBの内容...
-
QuickForm createElement での ...
-
phpのin_array()でわからない事...
-
バッチでFTPコマンド
-
NGワード設定もしくはテキス...
-
2次元配列の値の受け渡しについ...
-
file_get_contents()にて文字化け
-
Zend_Form_Element_Hash
-
日付、時間の2段階でソート
-
サイト名を取得するPHP
-
codeigniterのページネーション...
-
しりとり 無限ループ?
-
phpとmysqlで「あいまい検索」...
-
listへのappendが出来ない件
-
テキストボックスの日本語をロ...
-
usortで3つの項目を昇順・降順...
-
1~100の数字の9の倍数だけ同じ...
-
pukiwikiのユーザ認証の設定で...
-
cakephp2.6でfindを使い合計値...
-
PHP5の外部コマンド実行で、バ...
おすすめ情報