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

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

新規登録して質問してみよう
ただいま回答率
85.48%
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

774閲覧

Python 配列について

退会済みユーザー

退会済みユーザー

総合スコア0

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/11/12 20:29

編集2021/11/13 11:52

こんにちは!今している文や単語のアクセント部分を使う課題の中で、
0と1だけのリスト(matrix)があるとき、
--c(B | A)は、Bのアクセントの前にAのアクセントが付いた回数です。
距離<=tau
--c(A | B)は、Aのアクセントの前にBのアクセントが付いた回数です。
距離<=tau
--m(A)はAのアクセントの数です
--m(B)はBのアクセントの数です

ここで、AまたはBの値1はアクセントを表します。

注:m(A)== 0 又はm(B)== 0の場合、ゼロと見なされます

たとえば、次の2つのシーケンスが考えられます。
-A = [0、0、0、0、1、0、0、1]
-B = [1、0、1、0、1、0、0、0]
-tau= 3

以下を取得します。
--c(B | A)= 1、Bの3番目のアクセント(位置4)のみがAの前に3以下の距離内のアクセントがあるため。 (この場合、Aの1はBの1と同じ位置にあります)
--c(A | B)= 2、Aの両方のアクセントの前にBで3以下の距離内に2つのアクセントがあるため。
-m(A)= 2
-m(B)= 3

わかりやすい説明になってるのかわかりませんが、こちらのコードをどう書こうか目処もつかないので、助けてください。コードを書いて欲しいとかでなく、解くためになにを勉強すればいいのかアドバイスやヒントを下さると助かります。宜しくお願いします

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

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

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

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

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

1T2R3M4

2021/11/13 13:38

プログラミングに向いていないのでは。
退会済みユーザー

退会済みユーザー

2021/11/13 13:41

はい、そうかもしれませんがだから何でしょうか?てか誰です?笑笑
1T2R3M4

2021/11/13 13:45

個人情報を聞き出そうとしているんですか。
退会済みユーザー

退会済みユーザー

2021/11/13 13:48

いいえ、全く興味ないです。 どういう目的でわざわざ関係ないコメントをしたのですが?気になります
1T2R3M4

2021/11/13 13:49

アドバイスです。
退会済みユーザー

退会済みユーザー

2021/11/13 15:47

文章読んだら誰でもわかると思いますが自分が求めてたアドバイスは違いますね笑 プログラミングに向いてないと言うアドバイスをしてくれたと言う事ですが、向いてない=なんでしょうか?どんなアドバイスをしたかったんですか? 向いてないと言うアドバイスだけだと、いろんな捉え方ができるので。
1T2R3M4

2021/11/13 22:22

ガイドラインを守らない丸投げ質問したうえ、 個人情報を聞き出そうとした質問者さんが俺さまルールに従えとは いかがなものかと。 プログラミングするうえではいろいろなルールや制限があるので ルールを守れない質問者さんは、向いてないので諦めたらいかがでしょうか。
退会済みユーザー

退会済みユーザー

2021/11/13 22:59

俺さまはお互いですね、絶対諦めません❤️‍????笑
1T2R3M4

2021/11/14 03:55

ガイドラインはteratailが定義していて 個人情報は利用規約で書かれている ものだけど、どの辺が俺さまなのかな。
guest

回答3

0

一例になりますが、以下で実現可能かと思います。

Python

1import numpy as np 2 3def c_m(a, b, tau): 4 5 a_idxes = np.array([np.where(a==1)]).flatten() 6 b_idxes = np.array([np.where(b==1)]).flatten() 7 8 b_scope = [] 9 for a_idx in a_idxes: 10 tmp = np.arange(a_idx - tau , a_idx + 1) 11 b_scope.extend(tmp) 12 13 c = len([x for x in b_idxes if x in b_scope]) 14 m = np.count_nonzero(a == 1) 15 return c, m 16 17a = np.array([0, 0, 0, 0, 1, 0, 0, 1]) 18b = np.array([1, 0, 1, 0, 1, 0, 0, 0]) 19tau = 3 20 21c, m = c_m(a, b, tau) 22print(f'c(A|B) = {c}') 23print(f'm(A) = {m}') 24 25c, m = c_m(b, a, tau) 26print(f'c(B|A) = {c}') 27print(f'm(B) = {m}') 28 29# c(A|B) = 2 30# m(A) = 2 31# c(B|A) = 1 32# m(B) = 3

投稿2021/11/13 03:52

sgry7112

総合スコア15

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

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

0

ベストアンサー

cを求めるためには、相手方の直近tau+1個分のアクセントの数を保持する箱を用意しておけば以下のようなコードでできます。

Python

1from collections import deque 2import random 3 4class Box(object): 5 def __init__(self, size): 6 self.cnt = 0 7 # 略 8 9 def append(self, v): 10 # 略 11 12 def accents(self): 13 return self.cnt 14 15def c( l1, l2, tau): 16 box = Box(tau+1) 17 cnt = 0 18 for v1, v2 in zip(l1, l2): 19 box.append(v2) 20 # 自身のアクセントあり かつ 相手方のアクセントあり 21 if v1 > 0 and box.accents() > 0: 22 cnt += 1 23 return cnt 24 25A = [0,0,0,0,1,0,0,1] 26B = [1,0,1,0,1,0,0,0] 27tau = 3 28print(c(B,A,tau)) # 1 29print(c(A,B,tau)) # 2 30 31random.seed(110) 32N = 1000000 33A = [1 if random.randint(0, 9) > 7 else 0 for _ in range(N)] 34B = [1 if random.randint(0, 9) > 7 else 0 for _ in range(N)] 35tau = 3000 36print(c(B,A,tau)) # 200108 37print(c(A,B,tau)) # 199796

アクセントの数を返すmについては簡単なので省略します。

投稿2021/11/13 03:08

can110

総合スコア38266

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

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

0

残念ながら、ここではコード作成依頼は受け付けておりません。

まずはあなたなりにコードを書いてみましょう。
そのうえで、わからないことがあればそのコードとともに聞いていただければお答えできるかと思います

投稿2021/11/12 23:32

y_waiwai

総合スコア87774

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

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

退会済みユーザー

退会済みユーザー

2021/11/13 11:51

コードを書いてほしいとは思ってません、 目処がつかないからアドバイスやヒントが欲しかっただけです すみません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問