2006年01月11日

ケミラボ効果なしの理由予測

Gクレはんがなして自前で回線交換しとるんか謎なよーこやー。
うちもいちおシステムインテグレーターちゅうヨコモジで格好良さそうな会社の設計部門におるで言うんやけれどあんだけの規模でも自前で揃えるもんなんかなー。
データセンターにサーバー設置するんが普通やないの?
それは置いておいて師匠はんの落ち込み方が尋常やないでちと元気付けよか思てケミカルラボについて聞いたんよ。
いつも参考にさせてもろてるTrickster Wikiはんの情報見せてケミカルラボが働いてないか逆向きに働いてるんやないかて話をしたんやけれど。
したらこんな話してくれたわ。
これは某国のプログラムはコンパイル通って正常ケース1個通してOKなら全てOKみたいなノリでコード組んでることがある。
それで以前に某国に下請けさせたら酷い目に遭って結局自分でフルコード書き直す羽目になったことがある。
今回も型キャスト問題で変なことした可能性が考えられる。
ちょっとコード書くと
@int rangeValue = 7;
Aint minValue = 3;
Bdouble rnd = getRand();
Cint kekka = rangeValue*rnd;
Ddouble bai=1.5;
Ekekka = kekka * bai;
Fkekka = kekka + minValue;
これはコンパイルとおらない。
CとEで小数点を整数化したときに精度が落ちるというエラーになる。
だから型キャストして
Cint kekka = (int)(rangeValue*rnd);
Ekekka = (int)(kekka * bai);
としなければならないのだが・・・
左辺と右辺に同じ変数があるときは格好つけて+=や*=なんてのを使ったりするわけだ。
例えばFはkekka += minValue;なんて書いたりする。
今回数値が本当に変わらないのであれば恐らくこんな式を書いたと予測される。
Ekekka *= (int)bai;
これだと1.5という数字が入っているbaiが整数化されて1になってしまい値が変わらない。

なんとなくやけれど切り捨てるときに結果切り捨てるんやなくてケミカルラボの倍率のほう切り捨ててるっちゅうことでいいん?
うちはプログラム読めんけれどここ見とる人でわかる人もおるんやないかと期待や!



それにしてもメンテ中て暇やねー。
ほなときは師匠はん曰く「脳を鍛える大人のゲーム」フリーセルや!
うちも頑張れば師匠はんのようになれるかも!
ただ師匠はんのフリーセルは最初の一手を行って3分以内に解けなければ失敗ちゅう厳しいルールらしいで。
そんために問題出たら一手も動かさず頭ん中で最後までシュミレートするんやて。
うちには真似できへんで普通にやるしかあらへん。
ところでフリーセルて止め時に困るんよねー。
メンテ終わってくれれば止められるんやけれど。
昨日メンテ終わらんでこんなことになってもうたわ!
誰か止めて
四時までフリーセルとかしたらあかんて…orz。
posted by よーこ at 14:49| Comment(7) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
検証方法教え忘れた。
安くて大量に手に入る低レベルスロット付きアイテムをどこかで手に入れて、30LV能力値付加すればいい。
それで5が出るようならケミカルラボは働いていることになる。
Posted by 死傷 at 2006年01月11日 20:06
>師匠はん
なるほど!グッドアイデアや!
能力付加以外に0LV耐性付加て手もあるわー。
1〜5やろ?
マスターやと1.65倍やろ?
1→1
2→1.65
3→3.3
4→5.95
5→6.6

…4んときの5.95て数字に作為感じるんうちだけ?
Posted by よーこ at 2006年01月12日 19:00
ラボはあくまで変域範囲内での数値に影響を及ぼすのであって上限値が上げられるわけではないのではないでしょうか?
Posted by 今更通りすがり at 2006年01月14日 18:34
>これはコンパイルとおらない。
>CとEで小数点を整数化したときに精度が落ちるというエラーになる。

細かいツッコミご容赦を…^^;
これは、エラーではなくワーニングですね。

文法ミスではないのでコンパイルは通るけど、
結果は(プログラマの)期待通りにならないかも
しれませんよ…という感じ。

…で、大概ワーニングなんてのは、致命的なもの
以外は殆ど無視してしまうんですよね^^;
そうなると、ラボの変な数字ってのが
浮き彫りになってくるのかな〜と思います。
(やはりキャストミスの可能性あり!?)

Posted by 通りすがり羊 at 2006年01月15日 03:15
C++だとwarningで済むが型キャストに厳しいJAVAだと通常エラーになる。
#コンパイルオプションでwarning化できたかも
またStringにnull値足しこんで"null"という文字列に変換するような言語はJAVA(Server side JAVA)くらいなのでTSはJAVAを使っているものと思われる。
ケミカルラボに関しては私が書いたコードで同じ結果が得られることからプログラムバグっぽいが
精査してみるとラッキーデー効果切れ後に再キャストした際の上昇値が予想外の数値となっておりどのようなコードを書いてもバグではああはならない。
ゆえに現在可能性として以下の二つを疑っている。
・故意にああなるように作った
・数値がおかしかったため数値が合うように適当に修正用数式コードを埋め込んでテストケース「だけ」正常になったのでOKとしてしまった。
Posted by 死傷 at 2006年01月15日 04:47
皆さんwiki見る限りじゃ〜とおっしゃってますけどそもそもwikiの計算式がどこから出て来たのか分かんないんですが…
他のスキルも単純に威力まんまが反映してる訳でもないしスキル説明にそんな事が書いてあるわけでもないですし
海の向こうじゃ解析されてたり公式発表でもあったりしたんですかね?
個人的には単純に増分1.65倍は効果でかすぎだと思ってます
Posted by 通りすがり狐 at 2006年01月15日 04:48
(cβ時期に1ヶ月程monaという羊をやっていたが)私は現在TSをやっているわけではないしwikiが正しいかどうかは知らんし公式発表があるかどうかも知らん。
解析できているかどうかに関しては計算式自体は鯖側にあるものと考えられるため鯖をクラックでもしない限り不可能だろう。
#エラーメッセージから推測されるセキュリティレベルではクラックも不可能では無さそうだが警察に捕まる危険を冒してまでする気にもならないだろうし。
あくまでブラックボックステストから内部ロジックを推測しているだけだ。
さて最大値を越えるわけではないとすると効果を+65%するというのは非常に難しい話になる。
考えられる可能性としては「最低値が出た場合、65%の可能性でもう一度乱数計算をやりなおし、その結果を結果とする」という「サイ二度振り」方式なんてのもあるな。
Posted by 死傷 at 2006年01月16日 10:21
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/11575166

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。