質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

解決済

2回答

1150閲覧

計算の不具合?

souroppy

総合スコア44

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

1クリップ

投稿2016/07/19 13:17

ガチャのコンプリートまでに引く回数を計算するプログラムを作りたいです。
具体的には、まず1種類キャラクターがいるときにコンプリートするまでにかかる回数=1、次に二種類キャラクターがいるときにコンプリートまでにかかる回数=3、次に三種類キャラクターがいるときに・・・と続けていき、大体50ぐらいまでその作業を行いこの結果の「1」、「3」、・・・の部分を表示させるプログラムが作りたいのですが自分が作ってみたもの

Swift

1import UIKit 2 3 4 5var A: Int = 1 6var B: Double = 0 7var C: Double = 0 8var kekka:Double = 0 9var saigo:Double = 0 10var saigo2:Double = 1 11 12for count in 1...49 { 13 A = A + 1 14 saigo2 = saigo2 + saigo 15 saigo = 0 16 print(saigo2) 17 var C: Double = Double(A) 18 for count in 1...A { 19 var B: Double = Double(A) 20 B = B - 1 21 kekka = C / B 22 23 saigo = saigo + kekka 24 kekka = 0 25 26 } 27}

では、少し答えがおかしくなってしまいます。(合計になってしまっています+数字もおかしい)

Swift

11.0 25.0 39.5 414.8333333333333 521.0833333333333 628.2833333333333 736.45 845.5928571428571 955.7178571428571 1066.8289682539683 1178.9289682539683 1292.0198773448773 13106.103210678211 14121.180133755134 15137.251562326562 16154.318228993229 17172.380728993229 18191.439552522641 19211.495108078196 20232.547739657144 21254.597739657144 22277.645358704763 23301.690813250217 24326.734291511087 25352.775958177754 26379.815958177754 27407.854419716215 28436.891456753252 29466.927171038966 30497.961653797587 31529.99498713092 32563.027245195437 33597.058495195437 34632.08879822574 35668.118209990445 36705.146781419017 37743.174559196795 38782.201586223822 39822.227902013295 40863.253543038936 41905.278543038936 42948.302933282839 43992.326742806648 441037.3499986206 451083.37272589333 461130.39494811555 471178.41668724599 481227.43796384173 491277.45879717506 50

改善方法を教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2016/07/19 23:39

ガチャの仕様を書いて下さい。
ozwk

2016/07/19 23:45

2種類の時は、2回で終わることもあるでしょうし、100回引いても終わらないこともあると思うんですが、何をもって「3」なのでしょうか?
guest

回答2

0

ベストアンサー

合計になってしまっています

swift

1saigo2 = saigo2 + saigo

ここで足し込んでいるので合計になって当然です。

数字もおかしい

ガチャの仕様が分からないので、何がおかしいのか分かりません。

【追記】

swift

1for num in 1...49 { 2 var sigma = 0.0 3 for count in 1...num { 4 sigma = sigma + 1.0 / Double(count) 5 } 6 let comp = Double(num) * sigma 7 print("[\(num)種類] \(comp)回") 8}

投稿2016/07/19 23:51

編集2016/07/20 07:45
fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

二種類キャラクターがいるときにコンプリートまでにかかる回数=3

って書いていますが間違っていませんか?

2種類のキャラクターが出現するガチャならずっと1種類のキャラクターが出現することもありうると思うのですが。

投稿2016/07/19 14:09

realizerS

総合スコア265

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問