2016-03-22 20 views
0

Burada yeniyim ve Microsoft Yardım Merkezi'nde kesinlikle bulunmayan bir soruyu sormam gerektiğini ve bunun için de bir çözüm bulamadığımı düşündüm.Excel Göreceli Konumun Hesaplanması

Bir şeylerin olasılığını hesaplamaya çalışıyorum ve çoğunlukla Excel buna çok yardımcı oluyor. Başka değişkenler eklediğim halde sorunla karşılaşıyorum. Sayfam şu anda 4 8 taraflı zarın zarlarını karşılaştırmaktadır. 2 zarın belirli sembolleri vardır ve diğer iki zarın farklı sembolleri vardır. Bazı semboller birbirini olumsuzlar ve sonunda hasar çıkış numarasına gelirim. 2 veya 3 zar karşılaştırılırken olası kombinasyonlar sınırlıdır. 512 olasılığı olan 3 zar. Şimdi 4 ile 4096 olasılık var ve sadece daha yüksek olacak. Bu yüzden istediğime ihtiyacım var.

Hücrenin şu an içinde bulunduğu hücre bloğuna göre geçerli konumu anlamanın bir yolu var mı?

Örneğin: Bir reroll olasılığını hesaplıyorum, ancak yalnızca yarısı kadar olacak, yani tek bir kalıbın yeniden oynatma seçeneğiyle 12 olasılığı vardır. Bu yüzden geliştirdiğim mevcut olasılık tablosu her biri 96 olası sonuçtan oluşan 96 ayrı tablo olacak. Tablo 1/1, 2 zar Saldırı rulosunun ilk sırasını, 2 zar Savunma rulosu masasının ilk sırasını karşılaştırır. Satır 1 Bu tablonun 1. sütunu, Saldırı tablosunun R1C1 ve Savunma tablosunun R1C1'inin sonucunu verecektir. Tablodaki R1C2, Saldırı tablosunun R1C1'ine karşılık, Savunma masasının R1C2'sine karşılık verecektir. Bu tablonun R2C1'i Saldırı tablosunun R1C2'sine karşılık, Savunma tablosunun R1C1'i vs vs…

Tablolara nasıl referans yapılacağını biliyorum, böylece bir kez inşa ettim tablo, diğer 96 oluşturmak için kopyalayıp yapıştırabilirsiniz. Ama daha fazla zar rulo karşılaştırmak gibi, bu hızla ele almak için çok hantal hale gelir. Bir hücrenin göreceli konumunun belirli bir hücre bloğunda nerede olduğunu anlaması için bir yol varsa (örn. Benim örnek tablonun R2C1'i bunun R2C1 olduğunu anlarsa), yüküm üzerinde çok fazla kesinti yapar ve devam etmeme izin verir Bu olasılık tablolarını inşa etmek, böylece belirli alanlarda değişimleri daha iyi anlayabilir.

Her türlü yardım büyük beğeni topluyor.

+1

Bazı şeyleri kontrol etmek için bunu daha önce yaptım. Bir çözümün işe yarayıp yaramadığına bakılmaksızın, sadece Excel ile yapmayı denemeyi ve VBA gibi bir programlama dili kullanmamanızı tavsiye ederim. 2D ızgara üzerinde çok boyutlu IF-THEN blokları yapmak çok acı verici. –

+1

VBA kesinlikle gitmek için @ Grade'Eh'Bacon katılıyorum. VBA’da çok az sorunla RISK savaşlarının bazı simülasyonlarını yaptım. VBA'yı çıktıyı Excel'de satırlara göndermek için yazmak kolaydır. –

+0

bu size yardımcı olur mu? '= HÜCRE (" adres ")' – aFast

cevap

0

Temel zar hesaplaması için yazdığım bir Excel UDF dosyası%. Örneğiniz için olumsuz/koşullu sonuçlarla doğrudan çalışmayabilir, ancak birden fazla zar ve yan zar sayısını test etmek için esnekliği vardır, bu yüzden size bazı fikirlerle ilham verebilir. Önceki yorumlar önerildiği gibi, kesin parametreler verdiyseniz, muhtemelen belirli bir örnek alabilirsiniz. Örneğim% bir döndürür. Şu anda yalnızca tek bir sonucun olasılığını ölçer, ancak hücre başına =DiceRollOdds(3,2)+DiceRollOdds(4,2) (3 ve 4 olasılığını ölçmek için) birden fazla formül yapabilir ya da kodu daha spesifik bir şekilde değiştirebilirsiniz.

Function DiceRollOdds(OutcomeToCheck As Integer, NumberOfDice As Integer, Optional SidesOnDice As Integer) As Double 
Dim SuccessResult As Integer, FailedResult As Integer, SingleDice As Integer, RollResult As Integer 

If SidesOnDice = 0 Then 
    SidesOnDice = 6 
End If 

Dim Rolls As Integer 

For Rolls = 1 To (SidesOnDice^NumberOfDice) 
RollResult = 0 
    For SingleDice = 0 To NumberOfDice - 1 

     RollResult = Int(Rolls/SidesOnDice^SingleDice) Mod SidesOnDice + 1 + RollResult 
    Next SingleDice 

If RollResult = OutcomeToCheck Then 
    SuccessResult = SuccessResult + 1 
Else 
    FailedResult = FailedResult + 1 
End If 

Next Rolls 

DiceRollOdds = SuccessResult/(FailedResult + SuccessResult) 

End Function