私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレくだすれPHP(超初心者用)6
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ○
レスフィルター : (試験中)
データベースの統計情報みたいなやつとか
昨日何人が登録したとか、1ヶ月以上ログインしていないユーザーを
削除するとか
管理人しか使わない訳だし、例えばワード検索で自演XSSやSQLインジェクションができてもいいのかなと
やるには自分で不正コード打ち込まないといけないじゃない?
昨日何人が登録したとか、1ヶ月以上ログインしていないユーザーを
削除するとか
管理人しか使わない訳だし、例えばワード検索で自演XSSやSQLインジェクションができてもいいのかなと
やるには自分で不正コード打ち込まないといけないじゃない?
だからいらないんじゃないのって
PHPというかもはや計算の問題なんですが、
$int = 500;
if ($int >= 568) { $lv = "Lv9"; }
elseif ($int >= 406) { $lv = "Lv8"; }
elseif ($int >= 278) { $lv = "Lv7"; }
elseif ($int >= 180) { $lv = "Lv6"; }
elseif ($int >= 108) { $lv = "Lv5"; }//5*5*2(50)+4*4*2(32)+3*3*2(18)+2*2*2(8)
elseif ($int >= 58) { $lv = "Lv4"; }//4*4*2(32)+3*3*2(18)+2*2*2(8)
elseif ($int >= 26) { $lv = "Lv3"; }//3*3*2(18)+2*2*2(8)
elseif ($int >= 8) { $lv = "Lv2"; }//2*2*2(8)
else { $lv = "Lv1"; }//0
echo "{$lv}<br>";
というソースを実行するとLv8<br>が出力されます。
これを
$lv = $int / (ごにょごにょ演算);
的な感じで1行(もしくは数行)にしたいのですが、計算式がわかりません…
$intと比較する数字はコメント部分の通りです。
どなたか教えていただけるとありがたいです。
アホな質問ですいません。
$int = 500;
if ($int >= 568) { $lv = "Lv9"; }
elseif ($int >= 406) { $lv = "Lv8"; }
elseif ($int >= 278) { $lv = "Lv7"; }
elseif ($int >= 180) { $lv = "Lv6"; }
elseif ($int >= 108) { $lv = "Lv5"; }//5*5*2(50)+4*4*2(32)+3*3*2(18)+2*2*2(8)
elseif ($int >= 58) { $lv = "Lv4"; }//4*4*2(32)+3*3*2(18)+2*2*2(8)
elseif ($int >= 26) { $lv = "Lv3"; }//3*3*2(18)+2*2*2(8)
elseif ($int >= 8) { $lv = "Lv2"; }//2*2*2(8)
else { $lv = "Lv1"; }//0
echo "{$lv}<br>";
というソースを実行するとLv8<br>が出力されます。
これを
$lv = $int / (ごにょごにょ演算);
的な感じで1行(もしくは数行)にしたいのですが、計算式がわかりません…
$intと比較する数字はコメント部分の通りです。
どなたか教えていただけるとありがたいです。
アホな質問ですいません。
無理に短くしないで関数にすればいいだけじゃん。
ロジックを整理するならともかく、書き方で短くするだけだと
あとで条件変更しにくくなるよ。
あと、個人的には、$int という変数名はinteger 一般みたい
で抵抗がある。
ロジックを整理するならともかく、書き方で短くするだけだと
あとで条件変更しにくくなるよ。
あと、個人的には、$int という変数名はinteger 一般みたい
で抵抗がある。
>>557
$int = 500;
$lv = levelcheck($int);
echo "{$lv}<br>";
function levelcheck($int){
if ($int >= 568) { $lv = "Lv9"; }
elseif ($int >= 406) { $lv = "Lv8"; }
elseif ($int >= 278) { $lv = "Lv7"; }
elseif ($int >= 180) { $lv = "Lv6"; }
elseif ($int >= 108) { $lv = "Lv5"; }//5*5*2(50)+4*4*2(32)+3*3*2(18)+2*2*2(8)
elseif ($int >= 58) { $lv = "Lv4"; }//4*4*2(32)+3*3*2(18)+2*2*2(8)
elseif ($int >= 26) { $lv = "Lv3"; }//3*3*2(18)+2*2*2(8)
elseif ($int >= 8) { $lv = "Lv2"; }//2*2*2(8)
else { $lv = "Lv1"; }//0
return $lv;
}
$int = 500;
$lv = levelcheck($int);
echo "{$lv}<br>";
function levelcheck($int){
if ($int >= 568) { $lv = "Lv9"; }
elseif ($int >= 406) { $lv = "Lv8"; }
elseif ($int >= 278) { $lv = "Lv7"; }
elseif ($int >= 180) { $lv = "Lv6"; }
elseif ($int >= 108) { $lv = "Lv5"; }//5*5*2(50)+4*4*2(32)+3*3*2(18)+2*2*2(8)
elseif ($int >= 58) { $lv = "Lv4"; }//4*4*2(32)+3*3*2(18)+2*2*2(8)
elseif ($int >= 26) { $lv = "Lv3"; }//3*3*2(18)+2*2*2(8)
elseif ($int >= 8) { $lv = "Lv2"; }//2*2*2(8)
else { $lv = "Lv1"; }//0
return $lv;
}
>>561
頭わりぃw
頭わりぃw
>>557
$intがlv0の時1*1*2だと都合がいいので($int+2)で考える。
自然数の自乗の和は1/6*(2n^3+3n^2+n)なので、3次方程式の解の公式に、
a=2,b=3,c=1,d=0を当てはめる。
3次方程式の解の公式は
こんなかんじ。
あとは自分でがんばってくれ。
$intがlv0の時1*1*2だと都合がいいので($int+2)で考える。
自然数の自乗の和は1/6*(2n^3+3n^2+n)なので、3次方程式の解の公式に、
a=2,b=3,c=1,d=0を当てはめる。
3次方程式の解の公式は
こんなかんじ。
あとは自分でがんばってくれ。
一つの公式作ってそれだけで同じ種類のあらゆる計算に当てはめるって、
誰もが一度はやってみるよなw
数学の世界ならいいけど、コンピュータだと演算方法が限られてるから、
そんなことやっても誰も得しないという。
誰もが一度はやってみるよなw
数学の世界ならいいけど、コンピュータだと演算方法が限られてるから、
そんなことやっても誰も得しないという。
>>557が式が欲しいって言うからさ。
for ($i = 1; $i < 10; $i++) {
print level($i)." ";
}
function level($level) {
for ($i = 1; $i <= $level; $i++) {
$return += (1 + $i) * (1 + $i) * 2;
}
return $return;
}
print level($i)." ";
}
function level($level) {
for ($i = 1; $i <= $level; $i++) {
$return += (1 + $i) * (1 + $i) * 2;
}
return $return;
}
つ変数の初期化
つpow
てか今の経験値で到達するレベルじゃなくて、今のレベルに必要な経験値を求める関数でいいの?
つpow
てか今の経験値で到達するレベルじゃなくて、今のレベルに必要な経験値を求める関数でいいの?
>>568
今の経験値からLvがいくつかなのを求めるということでしょ。
今の経験値からLvがいくつかなのを求めるということでしょ。
99回のループが問題になるって、どんなんだよw
それに、3次の解の公式の方が重たいだろ、複素数出てくるし3乗根出てくるし。
それに、3次の解の公式の方が重たいだろ、複素数出てくるし3乗根出てくるし。
>>574
理解できないならそう言えばいいのに。
理解できないならそう言えばいいのに。
そのくらいで迷うなら本とバージョンもあわせたほうがいいかもね。
php.ini-development や php.ini-production の中見てみた?
あと一緒に添付されてるinstall.txtとかも読もうぜ
php.ini-development や php.ini-production の中見てみた?
あと一緒に添付されてるinstall.txtとかも読もうぜ
俺も>572のようにLvと総経験値の対応テーブルを持っておくに一票。
・計算式の変更が起きる可能性は高いだろうから、簡単に差し替えられるようにした方が便利
・また、変更があった際に、Lv10とLv2で同じ計算式になるって保証もないので、式の一般化はしない方が便利
・毎回算出しても問題になるような量の計算でもないが、無駄な計算を回避できるに越した事はない
>563 のような式そのものをコードの中に組み込むのは
・後でどういう式で計算してるのか分かるように、ロジックをソースコードの中に書いておきたい
・「ルチ将軍のLvは1300だ」とか「私の戦闘力は53万です」とか、データ量が多すぎで一覧表にしてられない
場合とかかな。
・計算式の変更が起きる可能性は高いだろうから、簡単に差し替えられるようにした方が便利
・また、変更があった際に、Lv10とLv2で同じ計算式になるって保証もないので、式の一般化はしない方が便利
・毎回算出しても問題になるような量の計算でもないが、無駄な計算を回避できるに越した事はない
>563 のような式そのものをコードの中に組み込むのは
・後でどういう式で計算してるのか分かるように、ロジックをソースコードの中に書いておきたい
・「ルチ将軍のLvは1300だ」とか「私の戦闘力は53万です」とか、データ量が多すぎで一覧表にしてられない
場合とかかな。
ワンチップマイコンでもあるまいし今の時代に
ソースサイズ必死で小さくする理由があるんかねw
ソースサイズ必死で小さくする理由があるんかねw
そもそもPHPが毎回起動すんだろ。
IF文が200個くらい増えたところで、
起動プロセスよりはるかに軽い。
IF文が200個くらい増えたところで、
起動プロセスよりはるかに軽い。
CG やアクションでも、計算量多いのは予め計算済みの値を配列(テーブル)に入れるのが定石。
function is_next_level($current_level, $current_exp) {
$level_table = array(
'1'=>'8',
'2'=>'26',
'3'=>'58',
'4'=>'108',
'5'=>'180',
'6'=>'278',
'7'=>'406',
'8'=>'568',
'9'=>'768',
);
$next_level = $current_level + 1;
if ($level_table[$next_level] < $current_exp) {
return true;
}
else {
return false;
}
}
$level = 54;
$exp = 2000;
if (is_next_level($level, $exp)) {
print 'レベルがあがった。再帰でも使って何レベル上がったか返す関数は自分で書け';
}
function is_next_level($current_level, $current_exp) {
$level_table = array(
'1'=>'8',
'2'=>'26',
'3'=>'58',
'4'=>'108',
'5'=>'180',
'6'=>'278',
'7'=>'406',
'8'=>'568',
'9'=>'768',
);
$next_level = $current_level + 1;
if ($level_table[$next_level] < $current_exp) {
return true;
}
else {
return false;
}
}
$level = 54;
$exp = 2000;
if (is_next_level($level, $exp)) {
print 'レベルがあがった。再帰でも使って何レベル上がったか返す関数は自分で書け';
}
>>591
君、そうとう鈍いだろ
君、そうとう鈍いだろ
ソース書く人と仕様を決める人が同じオナニープログラムなら
>>566みたいなのでいいかもしれんが
将来的に拡張される可能性があるなら配列に入れるのが手っ取り早いね
もちろん、いずれは膨大な数になるとかならDBでもいいけど
高々10個足らずの整数値しか取らない変数にDBはありえないでしょ
>>566みたいなのでいいかもしれんが
将来的に拡張される可能性があるなら配列に入れるのが手っ取り早いね
もちろん、いずれは膨大な数になるとかならDBでもいいけど
高々10個足らずの整数値しか取らない変数にDBはありえないでしょ
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
みんなの評価 : ○類似してるかもしれないスレッド
- くだすれPHP(超初心者用)4 (1001) - [97%] - 2008/11/21 17:19 ○
- くだすれPHP(超初心者用)3 (1001) - [97%] - 2008/6/8 6:35 ☆
- くだすれPHP(超初心者用)5 (1001) - [97%] - 2009/3/9 16:02 ○
- さっさとPHP5.0.6出せよ糞Zend (80) - [31%] - 2019/5/9 7:45
トップメニューへ / →のくす牧場書庫について