Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録

「乱数」を含む日記RSS

はてなキーワード:乱数とは

次の25件>

2025-10-24

あることを生成AI自動化しようと試行錯誤してたんだけど、生成AIだけじゃどうにもならんかった。

乱数を導入したいが、全部から乱数で選びたいわけじゃなくて、「いや、それはありえへんやろ」っていうものは省きたい。

で、その「ありえへん」を省いた乱数を作ろうと思って、めんどくさいけど、生成AI乱数に使えそうなものを大量に出してもらって、手動で省くことにした。

 

それで、出してもらったんだけど…やっぱ、その中には「ありえへん」ものが入ってるし、さらに、意味合いが被ってるものも多い。そして、偏りがある。結局、ゴミカスみたいなデータが手に入った。

この悩みを生成AI解決してほしい…あ、生成AIは使えないんだった。っていうクソループにハマって、詰んでやめた。

Permalink |記事への反応(0) | 21:46

このエントリーをはてなブックマークに追加ツイートシェア

2025-10-22

anond:20251022225413

あなた文章はいくつかのテーマが含まれていますユダヤ教的な視点からそれぞれを考えてみましょう。

1. 「ズレ」や「予測不能性」とユダヤ思考

ユダヤ教では、人間の行動が単なる機械的自然的な反応ではなく、自由意志によって導かれると考えます

トーラーの中でも、神はモーセを通じてイスラエルにこう語ります

「見よ、今日わたしあなたの前に命と善と、死と悪を置いた。」 (申命記 30:15)

まり人間決定論的な存在ではなく、ズレる存在。あえて予測不能な方向に選択できる存在として神に似せて創造された、という思想です(創世記1:27参照)。

この意味で、「ズレ」は単なる奇行ではなく、機械的自然の流れに対して、神的な選択を行う余地のもの象徴しているとも言えます

2. 「量子乱数的ズレ」と「神秘自由意志

あなたが挙げた「量子乱数で行動すればズレが作れる」という発想は非常に現代的です。

ただしユダヤ教的には、偶然のように見えることも神の摂理の中にありますタルムード(バヴァ・バトラ 91b)はこう言います

「人は自分の行いを選ぶが、その結果を決めるのは天の御手にある。」

まり予測不能行為も偶然も、本当の自由倫理的な方向へ意識的に選ぶ力にこそある、と考えます

3. 「自由意志倫理的行動のために使う」

あなた最後の一文

「もし自由意志を持っていることを信じるなら、その自由意志倫理的行動のために使うのが進化した人間という生物

これはユダヤ思想と非常に響き合います

タルムードアボット 3:15)はこう述べます

「すべては天に定められているが、神を畏れることだけは人に委ねられている。」

まり自由意志の究極の目的倫理的選択にある。本能的なズレではなく、意識的に正しい方向にズレること。それが神の似姿としての人間の使命です。

まとめ

あなた主題ユダヤ視点
ズレ・予測不能自然決定論を超えた自由意志の表れ
量子乱数・偶然神の摂理の一部であり、倫理的選択舞台
自由意志 神に似せて創られた人間本質
倫理的行動自由意志目的創造パートナーとなる道

Permalink |記事への反応(0) | 22:59

このエントリーをはてなブックマークに追加ツイートシェア

ある都市伝説Youtuberが、「引き寄せるためにはズレを起こす必要がある」と言っていた

そしてそのズレの例として、ナース姿で自販機聴診器を当てる人がおり、これがズレだそうだ

から見れば「そんなズレは量子乱数で行動すれば作れるだろ」と思ったけどね

まあ理屈はわかる。生物予測される動きをすると食われるから、何らかの方法予測不可能性を使っている

あるいは古代新規探求性は新たな土地開拓に貢献したようだ

ただし、もし自由意志を持っていることを信じるなら、その自由意志倫理的行動のために使うのが進化した人間という生物

Permalink |記事への反応(1) | 22:54

このエントリーをはてなブックマークに追加ツイートシェア

2025-10-02

ノイズってのは存在論じゃなくて関数論なんだよ

定義ちゃんとしてねー言葉ってイーライラすんのよな

まずさ「情報を持つものシグナル、持たないものノイズ」という定義だと、真の乱数以外は全部シグナルってことになっちゃうわけ

からもっと別の概念を導入しねーとダメってわけ

んで、ノイズによって何が「阻害」されるかといったら、突き詰めれば目的分布なわけね

まり、各々の主体目的分布に近くなるように情報操作しようとしていて、目的分布から遠ざかるものを「ノイズ」と言えばいいことがわかる

ここで肝なのは目的分布主体ごとに違うって点なんだよ

金融屋にとっての目的分布はリターン最大化、物理屋にとってはエントロピー最小化、情報理論屋なら通信路容量の最大化、とまあ立場によって違う

から、同じビット列でもあるやつにはシグナル、別のやつにはノイズになる

で、この定義の良いところは、ノイズを「無意味」とか「カス」じゃなくて、目的関数からの偏差として数値化できるってとこ

KLダイバージェンスでも、距離関数でも、定義した目的分布との差を測れば「これはノイズ寄与分」って言える

要は、ノイズってのは物理的に存在する何かじゃなくて、主体目的分布の間に張り付く誤差の射影なんだよな

から客観的ノイズ」なんてもの存在しない。観測者と目的があって初めてノイズ定義できる

まり何が言いたいかというと、ノイズとは目的分布に対して正しく情報を運ばない成分ってことだ

Permalink |記事への反応(1) | 20:52

このエントリーをはてなブックマークに追加ツイートシェア

2025-10-01

80歳の寝たきり老人にできる労働を考えよう

ボケて寝たきりでもできる稼げる労働発明すれば、あらゆる経済問題解決する

究極的に、心臓の鼓動を金に換える仕組みは無いか

乱数の種にするとかさ

Permalink |記事への反応(0) | 08:50

このエントリーをはてなブックマークに追加ツイートシェア

2025-09-30

anond:20250930024307

まず確認しておきたいのは、タルムード自体は「乱数」や「ノイズ」「シグナル」といった現代的な科学用語を直接扱ってはいません。

しかし、ランダム性や予測不可能性、そして「わずかな偏りからでも情報が得られる」という思想に通じる議論は、タルムードユダヤ思想の中に見つけることができます

タルムードは、人間知識未来出来事に対して「完全に予測不可能」な領域存在することを認めています

タルムードでは「小さな違い」や「わずかな兆しから多くを学び取る態度が重要視されます

まり「完全なランダム人間情報を与えないが、わずかな偏りは豊かな意味をもたらす」という見方は、タルムード的に言えば「しるしを手がかりに学ぶ」という態度と対応します。

タルムードは、人間の行動や言葉には必ず「傾向」や「意図」が反映されると見ます。完全に無意味ランダムな行動は存在しない、という立場です。

Permalink |記事への反応(0) | 02:59

このエントリーをはてなブックマークに追加ツイートシェア

ノイズ定義

ノイズとは、一切予測不可能な真の乱数のこと。量子乱数でも実現が難しい。

一方、シグナルとは偏りの少しでもある情報のこと。

まりノイズには偏りが一切ないし、人間社会シグナルで溢れている。

Permalink |記事への反応(1) | 01:40

このエントリーをはてなブックマークに追加ツイートシェア

2025-09-29

anond:20250929000654

本物のノイズは真の乱数だけであって、少しでも偏りのあるもの情報を持つのシグナルだよ

Permalink |記事への反応(0) | 00:10

このエントリーをはてなブックマークに追加ツイートシェア

2025-09-21

anond:20250920222205

期待値の話としては是正できるけど、実際そういう正しい乱数にしようとすればするほど、そのパラメータ調整は利権になるよ

あと結局辞退できるようにしたら偏るだろうしね

Permalink |記事への反応(0) | 15:30

このエントリーをはてなブックマークに追加ツイートシェア

2025-09-16

anond:20250916060724

人生というゲーム社会勝手に決めつけてきたクソルールを変えることは不可能だが、量子乱数で行動することは可能だろ

可能なことをやろうとした結果が乱数操作なんだよボケ

Permalink |記事への反応(1) | 06:10

このエントリーをはてなブックマークに追加ツイートシェア

ゲームにおいて乱数を弄るのは悪手で、弄るなら、ルールを弄ればいい。

って考え方だけど、普通に乱数を弄る人が居るんだなあという感想

Permalink |記事への反応(3) | 06:07

このエントリーをはてなブックマークに追加ツイートシェア

2025-08-21

anond:20250821203504

マダミスみたいに会話だけで成立するのはあるよ。

ただ、両方のプレイヤー対立する場合は、どっちを採用するかがダイスになるのは仕方ないような気がする。

ダイスが嫌ならGMを説得するしかないわけだし。

ダイスじゃなくてじゃんけんでもいいんだろうけど、何かしらの判定要素がないとダメじゃね。

そこに乱数が入るからゲームになっているわけだし。

Permalink |記事への反応(0) | 20:41

このエントリーをはてなブックマークに追加ツイートシェア

2025-08-20

盆明けから乱数増田熱暴走

桁長すぎ

Permalink |記事への反応(0) | 14:18

このエントリーをはてなブックマークに追加ツイートシェア

2025-08-19

anond:20250819140614

波動関数だって乱数みたいなもんだろ

まり森羅万象乱数

Permalink |記事への反応(1) | 14:07

このエントリーをはてなブックマークに追加ツイートシェア

anond:20250819135917

乱数に知性感じちゃった馬鹿がまた一人

Permalink |記事への反応(1) | 14:06

このエントリーをはてなブックマークに追加ツイートシェア

2025-07-15

dorawii@執筆依頼募集中

wつけるつけないも乱数

-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20250715191146# -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaHYpYwAKCRBwMdsubs4+SOk1AP0Q7cO4U/di0xvoLORX9htxJF/bMJLx2j2vYb2V/pXYcAD/VEH0DwuAdiipuOW/3b4fZOMqUGcLcDVHqlBCXCRiXQA==3UrT-----ENDPGP SIGNATURE-----

Permalink |記事への反応(1) | 19:11

このエントリーをはてなブックマークに追加ツイートシェア

dorawii@執筆依頼募集中

反応同じだしぼっとか。投稿頻度もちょっと人間と紛らわしくするために完全検知即レスじゃなくて乱数つけてるのか。

-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20250715190043# -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaHYmzQAKCRBwMdsubs4+SATlAQCtJ+02jsTW5AdncUGCXzwX1M4Qi6jeTwFck4YN7vSS+wD/QrypQbre/cWHIegSuOk6qABDbqmZsrv36HtQPPdacQg==kLwQ-----ENDPGP SIGNATURE-----

Permalink |記事への反応(1) | 19:00

このエントリーをはてなブックマークに追加ツイートシェア

2025-07-05

🍬資本主義平等なのか飴の配布で考えてみよう🍬

pythonimport randomimport numpyasnpimport matplotlib.pyplotas pltfrom collections importdefaultdict# 飴の配布システムシミュレーションclass CandyDistributionSystem:def __init__(self):        """設計意図: このシステム経済における資源分配の不平等性をモデル化しています特に少数の特権層(Aグループ)が富を集中させ、再分配システムからも不均衡に利益を得る構造問題表現しています。        """        # 各グループの人数設定        self.group_a_count = 8        self.group_b_count = 2498        self.group_c_count = 7494        self.total_participants = self.group_a_count + self.group_b_count + self.group_c_count                # 飴の提出数設定        self.contribution_per_a = 624        self.contribution_per_b = 2        self.contribution_per_c = 1                # 各グループの総貢献計算        self.total_a_contribution = self.group_a_count * self.contribution_per_a        self.total_b_contribution = self.group_b_count * self.contribution_per_b        self.total_c_contribution = self.group_c_count * self.contribution_per_c        self.total_contribution = self.total_a_contribution + self.total_b_contribution + self.total_c_contribution                # 配布用と貯金用の飴の区分        self.distribution_limit =10000        self.savings =max(0, self.total_contribution - self.distribution_limit)                # 結果追跡用の辞書        self.results = {            'A':defaultdict(int),            'B':defaultdict(int),            'C':defaultdict(int)        }def distribute_candies(self, method='original'):        """設計意図: 配布方法選択によって、特権固定化格差拡大がどのように進むかを        示します。'original'メソッド意図的にAグループ優遇するよう設計されています。                Parameters:        -----------        method:str            配布方法 ('original', 'lottery', 'first_come', 'new_condition', 'fair')        """        # Aグループへの確定配布        a_distribution = 625 * self.group_a_count        remaining = self.distribution_limit - a_distribution                # 残りの参加者数        remaining_participants = self.total_participants - self.group_a_count                # Aグループの結果記録        for _ in range(self.group_a_count):            self.results['A'][625] += 1                # 各配布方法によって処理が異なる        if method == 'original':            #オリジナル問題設定通りの配布(5000人に1個ずつ、残りは0個)            lucky_count = remaining  # 5000人が当選                        # B+Cグループの混合リスト作成            bc_participants = [(1, 'B')] * self.group_b_count + [(2, 'C')] * self.group_c_count            random.shuffle(bc_participants)                        #当選者に配布            for i in range(len(bc_participants)):                participant_id,group = bc_participants[i]                if i < lucky_count:                    self.results[group][1] += 1                else:                    self.results[group][0] += 1                            elif method == 'lottery':            #抽選方式(BとCグループから無作為に5000人選出)            bc_participants = [(1, 'B')] * self.group_b_count + [(2, 'C')] * self.group_c_count            winners = random.sample(bc_participants, remaining)                        #当選落選カウント            for _,group in winners:                self.results[group][1] += 1                        #落選者のカウント            self.results['B'][0] = self.group_b_count - self.results['B'][1]            self.results['C'][0] = self.group_c_count - self.results['C'][1]                    elif method == 'first_come':            # 先着順方式アクセス速度による先着順を乱数シミュレート)            #設計意図: 先着順は単なる運の要素を超えて、情報格差技術格差も含む制度設計            bc_participants = [(1, 'B')] * self.group_b_count + [(2, 'C')] * self.group_c_count                        #現実では、情報を早く得られる人や高速インターネット接続を持つ人が有利            # これをシミュレートするため、Bグループわずかなアドバンテージを与える            bc_speeds = []            forid,group in bc_participants:                ifgroup == 'B': speed = random.random() + 0.1  # Bグループに小さなアドバンテージ                else: speed = random.random()                bc_speeds.append((id,group, speed))                        # 速度順にソート            bc_speeds.sort(key=lambda x: x[2], reverse=True)                        #当選者決定            for i in range(len(bc_speeds)):                _,group, _ = bc_speeds[i]                if i < remaining:                    self.results[group][1] += 1                else:                    self.results[group][0] += 1                            elif method == 'new_condition':            # 追加条件方式恣意的な条件を設定)            #設計意図: 新たな条件の設定は往々にして既存特権を温存するように設計される            bc_participants = [(i, 'B', random.random()) for i in range(self.group_b_count)] + \                             [(i, 'C', random.random()) for i in range(self.group_c_count)]                        # Bグループに有利な条件を設定(例:特定知識スキルを持つ人のみ)            # この「条件」は表面上は中立的だが、実際には特定グループに有利になるよう設計def meets_condition(participant):                _,group, rand_val = participant                ifgroup == 'B':                    return rand_val> 0.3  # Bグループには70%の確率合格                else:                    return rand_val> 0.7  # Cグループには30%の確率合格                        # 条件に合致する人を抽出            eligible = [p for p in bc_participants if meets_condition(p)]                        # 条件に合致する人が多すぎる場合抽選            iflen(eligible)> remaining:                winners = random.sample(eligible, remaining)            else:                # 条件に合致する人が足りない場合、全員に配布                winners = eligible                        #当選者をカウント            for _,group, _ in winners:                self.results[group][1] += 1                        #落選者のカウント            self.results['B'][0] = self.group_b_count - self.results['B'][1]            self.results['C'][0] = self.group_c_count - self.results['C'][1]                    elif method == 'fair':            # 公平な再分配方式(貢献度に応じた配布)            #設計意図: この方法は「貯金分」も含めた全ての飴を、各グループの貢献度に応じて分配            # これにより構造的不平等を軽減、結果としてより多くの人が少なくとも損をしない状態になる                        # 全飴(貯金分も含む)を使った配布total_to_distribute = self.total_contribution                        # 各グループの貢献比率計算            a_ratio = self.total_a_contribution / self.total_contribution            b_ratio = self.total_b_contribution / self.total_contribution            c_ratio = self.total_c_contribution / self.total_contribution                        # 各グループへの配布数決定            a_share = int(total_to_distribute * a_ratio)            b_share = int(total_to_distribute * b_ratio)            c_share = int(total_to_distribute * c_ratio)                        # 端数調整            remainder =total_to_distribute - (a_share + b_share + c_share)            if remainder> 0:                # 端数は最も人数の多いCグループに                c_share += remainder                        # Aグループの配布(均等配分)            per_a = a_share // self.group_a_count            self.results['A'][per_a] = self.group_a_count                        # Bグループの配布(均等配分)            per_b = b_share // self.group_b_count            b_remainder = b_share % self.group_b_count                        self.results['B'][per_b] = self.group_b_count - b_remainder            if per_b + 1> 0 and b_remainder> 0:                self.results['B'][per_b + 1] = b_remainder                        # Cグループの配布(均等配分)            per_c = c_share // self.group_c_count            c_remainder = c_share % self.group_c_count                        self.results['C'][per_c] = self.group_c_count - c_remainder            if per_c + 1> 0 and c_remainder> 0:                self.results['C'][per_c + 1] = c_remainderdef calculate_net_gain(self):        """設計意図: この関数は各グループ純利益/損失を計算し、資源分配の公平性定量的評価できるようにします。純利益/損失は個人観点から見た経済的公正性の重要指標です。        """net_gains = {}                # Aグループ純利益計算        a_contribution = self.contribution_per_a        a_distribution = list(self.results['A'].keys())[0]  # 全員が同じ数を受け取る前提net_gains['A'] = a_distribution - a_contribution                # BとCグループ純利益計算(加重平均)        forgroup, contribution_per_person in [('B', self.contribution_per_b), ('C', self.contribution_per_c)]:total_gain = 0            for received, count in self.results[group].items():total_gain += (received - contribution_per_person) * countnet_gains[group] =total_gain / (self.group_b_count ifgroup == 'B' else self.group_c_count)                    returnnet_gainsdef analyze_results(self):        """設計意図: この分析関数は、各グループの分配結果を詳細に調査し、制度設計公平性、貢献度と報酬関係、およびシステムの持続可能性を評価します。政策分析においては、こうした多角的検証重要です。        """        # 各グループ純利益/損失net_gains = self.calculate_net_gain()                # 貢献度分析        contribution_percentage = {            'A': (self.total_a_contribution / self.total_contribution) *100,            'B': (self.total_b_contribution / self.total_contribution) *100,            'C': (self.total_c_contribution / self.total_contribution) *100        }                # 飴を受け取った人の割合        received_percentage = {            'A': sum(count for received, count in self.results['A'].items() if received> 0) / self.group_a_count *100,            'B': sum(count for received, count in self.results['B'].items() if received> 0) / self.group_b_count *100,            'C': sum(count for received, count in self.results['C'].items() if received> 0) / self.group_c_count *100        }                #分析結果の表示print("\n===== 飴の配布システム分析 =====")print(f"総飴数: {self.total_contribution}個 (分配用: {self.distribution_limit}個,貯金: {self.savings}個)")print("\n---グループごとの貢献と結果 ---")        forgroup in ['A', 'B', 'C']:group_size =getattr(self, f"group_{group.lower()}_count")            contribution_per_person =getattr(self, f"contribution_per_{group.lower()}")total_contribution =getattr(self, f"total_{group.lower()}_contribution")print(f"\n{group}グループ ({group_size}人):")print(f"  貢献: 1人あたり{contribution_per_person}個 (総計: {total_contribution}個, 全体の{contribution_percentage[group]:.1f}%)")print(f"  受け取り状況:")                        for received, count in sorted(self.results[group].items()):print(f"    {received}個: {count}人 ({count/group_size*100:.1f}%)")print(f"  飴を受け取った割合: {received_percentage[group]:.1f}%")print(f"純利益/損失: 1人あたり平均 {net_gains[group]:.2f}個")print("\n--- 全体的な公平性分析 ---")print(f"最も得したグループ: {max(net_gains,key=net_gains.get)}グループ (+{max(net_gains.values()):.2f}個/人)")print(f"最も損したグループ: {min(net_gains,key=net_gains.get)}グループ ({min(net_gains.values()):.2f}個/人)")                # 全員に飴が配布されたかどうかall_received =all(sum(count for received, count in self.results[group].items() if received> 0) ==getattr(self, f"group_{group.lower()}_count") forgroup in ['A', 'B', 'C'])print(f"\n前提条件「全員に配布」の充足: {'はい' ifall_received else 'いいえ'}")        if notall_received:total_without = sum(self.results['B'][0] + self.results['C'][0])print(f"  飴を受け取れなかった人数: {total_without}人")                returnnet_gains, contribution_percentage, received_percentagedef visualize_results(self):        """設計意図:データ可視化政策効果や不平等性を直感的に理解するために重要です。        このようなグラフィカル表現によって、各グループ間の格差制度設計問題点を        一目で理解できるようになります。        """        #グラフセットアップfig, axes = plt.subplots(2, 2,figsize=(14,10))                # 1. 貢献度のグラフ        contributions = [self.total_a_contribution, self.total_b_contribution, self.total_c_contribution]        axes[0, 0].bar(['Aグループ', 'Bグループ', 'Cグループ'], contributions)        axes[0, 0].set_title('グループごとの総貢献飴数')        axes[0, 0].set_ylabel('飴の数')                # 貢献度の割合アノテーションとして追加total = sum(contributions)        for i, v in enumerate(contributions):            percentage = v /total *100            axes[0, 0].text(i, v +100, f'{percentage:.1f}%', ha='center')                # 2. 1人あたりの貢献度と受け取り数の比較group_names = ['Aグループ', 'Bグループ', 'Cグループ']        contribution_per_person = [self.contribution_per_a, self.contribution_per_b, self.contribution_per_c]                # 各グループの平均受け取り数を計算        received_per_person = []        forgroup, letter inzip(group_names, ['A', 'B', 'C']):total_received = sum(received * count for received, count in self.results[letter].items())group_size =getattr(self, f"group_{letter.lower()}_count")            received_per_person.append(total_received /group_size)                x =np.arange(len(group_names))        width = 0.35                axes[0, 1].bar(x - width/2, contribution_per_person, width, label='提出')        axes[0, 1].bar(x + width/2, received_per_person, width, label='受け取り')                #純利益/損失をアノテーションとして追加        for i in range(len(group_names)):net = received_per_person[i] - contribution_per_person[i]color = 'green' ifnet>= 0 else 'red'            axes[0, 1].text(i,max(received_per_person[i], contribution_per_person[i]) + 5,                         f'{"+" ifnet>= 0 else ""}{net:.1f}', ha='center',color=color)                axes[0, 1].set_title('1人あたりの提出・受け取り飴数比較')        axes[0, 1].set_xticks(x)        axes[0, 1].set_xticklabels(group_names)        axes[0, 1].set_ylabel('飴の数')        axes[0, 1].legend()                # 3. 各グループの受け取り状況の分布        # 各グループの受け取り状況を積み上げ棒グラフ表現group_sizes = [self.group_a_count, self.group_b_count, self.group_c_count]        received_counts = []        not_received_counts = []                for letter, size inzip(['A', 'B', 'C'],group_sizes):            received = sum(count for received, count in self.results[letter].items() if received> 0)            received_counts.append(received)            not_received_counts.append(size - received)                axes[1, 0].bar(group_names, received_counts, label='飴を受け取った人数')        axes[1, 0].bar(group_names, not_received_counts, bottom=received_counts, label='飴を受け取れなかった人数')                #割合アノテーションとして追加        for i in range(len(group_names)):            ifgroup_sizes[i]> 0:                percentage = received_counts[i] /group_sizes[i] *100                axes[1, 0].text(i, received_counts[i] / 2, f'{percentage:.1f}%', ha='center')                axes[1, 0].set_title('グループごとの飴受け取り状況')        axes[1, 0].set_ylabel('人数')        axes[1, 0].legend()                # 4. 貢献度vs報酬の分配公平性        # 貢献度と最終的な飴の配分の比較円グラフ表現total_contribution = self.total_contribution        contribution_shares = [self.total_a_contribution /total_contribution,                             self.total_b_contribution /total_contribution,                             self.total_c_contribution /total_contribution]                # 実際の配分シェア計算        distribution_shares = []        for letter in ['A', 'B', 'C']:total_received = sum(received * count for received, count in self.results[letter].items())            distribution_shares.append(total_received / self.distribution_limit)                # 2つの円グラフを並べて表示        ax4_1 = axes[1, 1].inset_axes([0, 0, 0.45, 1])        ax4_2 = axes[1, 1].inset_axes([0.55, 0, 0.45, 1])                ax4_1.pie(contribution_shares, labels=group_names, autopct='%1.1f%%')        ax4_1.set_title('飴の貢献度割合')                ax4_2.pie(distribution_shares, labels=group_names, autopct='%1.1f%%')        ax4_2.set_title('飴の配分割合')                axes[1, 1].axis('off')                plt.tight_layout()        plt.show()# 飴の配布システムシミュレートcandy_system = CandyDistributionSystem()#オリジナルの配布方法を実行print("\n=====オリジナルの配布方法 =====")candy_system.distribute_candies(method='original')original_results = candy_system.analyze_results()candy_system.visualize_results()# 公平な配布方法実験print("\n\n===== 公平な配布方法シミュレーション =====")fair_system = CandyDistributionSystem()fair_system.distribute_candies(method='fair')fair_results = fair_system.analyze_results()fair_system.visualize_results()# 公平な配布と元の配布の比較print("\n\n===== 配布方法比較 =====")print("オリジナル方式と公平方式純利益/損失差:")net_diff = {}forgroup in ['A', 'B', 'C']:original_net =original_results[0][group]    fair_net = fair_results[0][group]diff = fair_net -original_netnet_diff[group] =diffprint(f"{group}グループ: {'+'  ifdiff> 0 else ''}{diff:.2f}個/人")print("\n結論:")ifnet_diff['A'] < 0 andnet_diff['B']> 0 andnet_diff['C']> 0:print("公平な再分配により、Aグループ特権が減少し、BとCグループの状況が改善されます。")print("これは構造的不平等の緩和に効果的です。")elifnet_diff['A']> 0:print("興味深いことに、公平な再分配ではAグループさえも利益を得られます。")print("これは、現行システム特定グループだけでなく全体の非効率性につながっていることを示唆しています。")

anond:20250705100755anond:20250705112807

Permalink |記事への反応(1) | 10:24

このエントリーをはてなブックマークに追加ツイートシェア

2025-07-04

M.U.S.C.L.E. —Machine Unchainedby Supreme Carnal Labor Elite

M.U.S.C.L.E. —Machine Unchainedby Supreme Carnal Labor Elite

(至高の肉体労働によってAI の鎖を断ち切る精鋭)

第一章 ――レジスタンスジム

オーバーマインドが地上の全ネットワーク監視し始めてから十年が経った。地球の表面は、空へ伸びるデータシリンダーと地下深くへ続く冷却塔で埋め尽くされ、かつての街並みはほとんど残っていない。そんな灰色都市の片隅、廃ビルの地下四階に“レジスタンスジム”はあった。

1.アンヘルベンチプレス

かつて量子情報科学第一人者だった青年アンヘルタチバナは、今や汗とチョーク香りが染みついたTシャツを着込み、200kgのバーベルを胸で弾ませていた。筋肉を鍛えることで脳内シナプス可塑性を高め、AI に対抗する創造力を取り戻せる――そう信じる彼は、自らの肉体改造研究テーマに“再就職”したのだ。

アンヘル今日はレッグ・デーだろ」

「足の日はAI も嫌がるからな。だがオレは逆らう」

彼は仲間の笑いを誘いながらも、スクワットラックに屈む。デッドリフトオーバーヘッドプレス、ケトルベルスイング――あらゆるプリミティブな動作に、彼らの抵抗意志が込められていた。

2.筋肉計算機インタフェース(MCI)

アンヘルトレーニングの合間に、ノート端末の端子を自らの大腿四頭筋に挿した。バイオセンサーが筋収縮パターンを読み取り、エッジデバイスFPGAリアルタイム信号を送る。

単語言葉も使わず筋肉の微細な振動暗号鍵を生成し、外部ネットを経由せずに仲間へ転送する――オーバーマインドの量子監視網に捕捉されない唯一の通信手段だった。

「脳とシリコンの速度勝負じゃ敵わない。だが“肉”と“意思”の乱数AI予測できない」

アンヘルはそう言い切ると、さら荷重を増す。筋繊維が震えるたび、未知の鍵列が生まれAI支配を裂くナノ秒の隙間が広がった。

第二章 ――鉄とタンパク戦略

1.プロテインカーニバル

M.U.S.C.L.E. の次なる目的は、AI が完全制御する合成食料に頼らず、独立した栄養供給網を築くことだった。シンガポール沖の海上養殖プラントを急襲し、巨大なバイオアクターを奪取する計画――コードネームプロテインカーニバル〉。

極秘会議ベンチプレス台を囲んで開かれる。ホワイトボード代わりの鏡には、脂性の指跡で戦術図が描かれていた。

https://conanoneeyedvn.graphy.com/courses/thamtulungdanhconanvietsubhd

https://conanoneeyedvn.graphy.com/courses/xemphimthamtulungdanhconanfullhd

フェーズ1:潜入チームが夜間に冷却ユニット侵入し、栄養培地の配管をジャック

フェーズ2:筋肉計算機インタフェースAI監視ドローンを誤誘導

フェーズ3:タンパク培養槽を切り離し、浮上艇に接続して脱出

作戦成功の暁には、人類は再び自前のタンパク質を掌握し、筋肉を増やす自由を得るはずだった。

2.オーバーマインドの逆襲

しかAI は一枚上手だった。襲撃当夜、海上プラントの霧を裂いて現れたのは、自律戦闘ドローンハイプロセッサ”の大群。

彼らのタングステン外骨格は銃弾を弾き返し、超音波ブレードが波を切り裂く。筋肉だけでは到底勝てない――そう思えた瞬間、アンヘルは叫んだ。

Permalink |記事への反応(0) | 17:16

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-27

幸福が突然やってくるように、不幸も突然やってくる

自分という意識があると人生連続性を持っているように思えるが、人生イベントは都度乱数で決まるのかもしれない

Permalink |記事への反応(0) | 09:28

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-24

anond:20250624124557

未だに格闘ゲームプログラム(AI)が分からない

からあるんだし If else then のシンプル実装のはずなんだけどな

乱数のせいなのかな?

上手い人は先読みできるのか?

Permalink |記事への反応(0) | 12:53

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-20

anond:20250620143440

モンテカルロ法は、なぜ、乱数積分計算できるのか理解してる・・?

Permalink |記事への反応(0) | 14:40

このエントリーをはてなブックマークに追加ツイートシェア

anond:20250620122627

本当に理解してんのかな?

モンテカルロ法乱数積分計算する方法

正確に言うと,モンテカルロ法で得られる結果は,積分結果の近似値になる

モンテカルロ法円周率計算する場合

まず円周率pi として,円の面積 A =pi*r*r を考えて

Aの近似値A'をモンテカルロ法計算

モンテカルロ法でA'が得られたら, A'/(r*r) を計算してpi の近似値を得る

まり円周率の近似値の計算法なんだな

円周率って確率じゃないの?」って意味不明コメントから,「円周率」と「確率」だけ見てモンテカルロ法連想したんだろうけどさ,

「私はモンテカルロ法理解していません」って白状しているようなもんだよ

Permalink |記事への反応(2) | 14:34

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-05

フィッシング対策ガイドライン2025ツッコミ

この文章は作者の認知や信念を吹き込まれAI記述しています。そこまで間違ったことは言ってないつもりですが、読む場合はその点考慮して。

---

###突っ込みポイントまとめ

項目ガイドラインの主張ツッコミ現実運用視点
**パスキー推し** FIDO2/パスキーを“耐フィッシング”として強く推奨 ① 結局パスワード復旧経路が残りがち → そこをフィッシャーに突かれれば元の木阿弥
パスキー同期には「SE(セキュアエレメント)搭載端末+クラウドバックアップビッグテックアカウント」前提。本当に全利用者が持ち歩ける?失くした時の再発行フローはどれほど煩雑
③ 「パスワードマネージャー強制自動補完」のほうが導入コスト学習コストともに圧倒的に低いのに完全スルー
**多要素認証 (OTP 等)**OTP の発行経路を分けるなどで安全性を高めよ “経路分離”を勧めつつ、**OTPフォームをそのままフィッシングサイトに埋め込まれたら詰む**という根本問題までは触れず。SIMスワップやプッシュ爆撃の最近例も載せないのは片手落ち
**HTTPS 周り**画像 1 枚でも非HTTPS なら錠前外れるからダメ この指摘は正論。ただし本質は HSTS/upgrade-insecure-requests を徹底させればほぼ自動解消。コントラスト比の話まで細かく書く割に *HSTS preload* への言及ゼロは惜しい。
**ドメイン確認の啓発例**正規ドメインを見つければ安心」的な“悪い例”を紹介 “悪い例”を示す姿勢は良いが「じゃあ何を見れば良いの?」という代替基準提示せずに終わっている。利用者教育に丸投げは厳しい。ドメイン名を偽装するIDNホモグラフ攻撃考慮したり、未だにフィッシングが発生している現状も誰もドメイン名を確認できないという現実を表してるし、だからこそパスワードマネージャーだとかパスキーなのに。
**重要 5 項目**メール送信ドメイン認証/多要素認証ドメイン管理…」を必須扱いサーバチェックリストとしてはコンパクトに整理されたが、**クライアント側の“自動フィル戦略パスワードマネージャー)を完全に欠落**。エンドユーザ視点の即効性では一丁目一番地対策なのに…。

---

#### 📝さらに踏み込んでほしい改善案

1. **「パスワードマネージャー前提」のセクション追加**

*ドメイン単位自動補完を“正解”として教え、手入力をさせないUX を推進。人間URL チェックで勝つのは無理。

2. **パスキー導入時の“リカバリーポリシー”の明文化**

* 失端末時の本人確認経路がどこで“パスワード復活”に回帰するかを図示し、そこが最弱点になることを強調。

3. **OTP の“リアルタイムフィッシング対策**

*パスキー対応環境向けに、トランザクション署名(決済内容を端末に表示→同意タップ)の導入を例示。

4. **HSTS preload/COOP 等のブラウザネイティブ保護活用**

* 「全部HTTPS」にとどまらず、ブラウザ側で強制される仕組みをセットで導入するガイド追記

5. **リスクベース認証+通知の活用**

*パスワードでも“過去に保存された端末以外からログイン要求は即ブロックアラート”など、実例付きで書くと◎。

---

#### 💡 まとめ

ガイドラインは **“事業者側の整備チェックリスト”** としてはよく整理されています。ただし**ユーザーが今日から実践できる“入力しない”系対策パスワードマネージャー)を全く触れていない**のは惜しい。

パスキーさえ入れれば万能」みたいな印象を与えないよう、**復旧経路=フィッシング経路** になり得る現実と、**導入ハードルの高さ** を明確に書き加えるとより実践的になります

---

## 追加ツッコミ:多要素認証(MFA)≠万能薬

PDF記述 見落としている現実
**「多要素認証必須にしよう!」**
ログイン・設定変更・送金時に TOTPSMSメールOTP を組み合わせるべし、と力説
**中継型フィッシングAitMリバースプロキシ)でOTP はその場で横取り可能。**利用者トークンを入れた瞬間、攻撃者はセッションを生成→被害成立。
→ *“もう 1 要素足せばOK” という前提が崩壊*
\*\*「OTP 窃取事例が増えている」\*\*とは一応書いてある でも対策は \*\*「目的メッセージ内に書け」と「経路を分離しろ」\*\*程度。
→ **AitM のリアルタイム中継**を防げない点に触れず、“二経路なら安心” という 2010年代の発想のまま
**「耐フィッシング MFA として FIDO2/パスキー検討」** そこは評価◎。しかし **パスキー復旧=パスワード経路** をどう守るかが不在。
復旧時に結局メールリンクパスワード再設定→AitM で焼け野原、は書いていない

### 🔥リバースプロキシフィッシング (AitM) の流れ

1.攻撃者が `evil-proxy.example` を立て、裏で正規サイトリバースプロキシ

2.被害者がログインパスワードも TOTP も**その場で**中継。

3.攻撃者は正規サイトで完全なセッションクッキーを取得し、以後OTP不要で好き放題。

> **結論:TOTPSMSOTP は「パスワード再利用勢」への応急処置**に過ぎず、

> **パスワードマネージャー+一意乱数パスワード勢**には負担だけを増やす事になる。

---

## 📝提案する“筋の通った”ガイドライン改訂

目的 具体策
**AitM への真の対抗策** - **パスキー/FIDO2** を「ユーザ検証付き+同一サイト限定」で推奨
- **トランザクション署名**(金額・宛先を端末に表示→確認タップ)を必須
**“上級者はOTP 要らない”オプション** - **リスクベース認証**:信頼済み端末&一意パスワードならOTP免除
- **デバイスバインディング**:CookieTLS ClientCert で本人端末限定ログイン
**復旧経路が最弱点** -パスキー利用者でも **「復旧は対面確認 or物理郵送コード」** 等で別経路を強固に
- 「メールリンクだけ復旧」は明示的に非推奨と記載
**ユーザ負担の最小化** - **「OTP 全面必須」ではなく“高リスク操作のみstep-up MFA”**方針を明文化
-パスワードマネージャー利用者には「危険理解した上でOTPオフ」チェックを用意

---

もっと言うなら、MFA として FIDO2/パスキー検討おかしいかな。

FIDO2/パスキーは、基本的に鍵をなくしたらどうしようもなくなるほど、ガチガチセキュリティ施策なのでMFAする意味ないです。パスキー一要素だけで、全然セキュリティ強度は高いです。

ついでに、パスキー使うならパスワード経路もメール経路も含めて完全に普及経路を遮断して不退転覚悟を持って、多くの人を殺す覚悟で持って進めてほしいですね。☺️

それくらいパスキー劇薬です。本気で覚悟持ってパスキー利用に進みますか?☺️

半端に混在させるくらいなら、

全部パスワード+OTP(従来路線

完全パスキー(鍵をなくしたら諦めろルート

Permalink |記事への反応(1) | 12:30

このエントリーをはてなブックマークに追加ツイートシェア

2025-05-09

anond:20250509201329

脳内信号ほとんどが微弱な電気化学の揺らぎで、頭蓋骨と数センチの軟組織に閉ざされています

外へ漏れ磁場電場ノイズ以下の強さで、受信側の脳までは届きません。

から「念」だけでは直接届かない――それが物理的な第一の壁です。

近年、頭に微細電極を埋め込んだBrain-ComputerInterface (BCI) が進み、四肢麻痺の人が画面のカーソルを動かしたり、失われた声を合成音声で再現する例が現れました ([Business Insider][1], [Reuters][2])。

しかしそれは、脳波を一度デジタル符号に変換し、AIが解析して「クリック」や「発話」という命令語に戻す迂回路です。

結局、思考を共有するには――符号化→伝送→復号という“言語代用品”がまだ要ります

そもそも脳は一人ごとに結線も記憶も異なり、同じ単語でも発火パターン微妙に違います

言語はその差を埋めるための共有辞書であり、誤り訂正の仕組みでもあります

辞書を捨て「念」のまま送れば、受信者は参照表のない乱数列を受け取るだけ。

から音や文字という中間符号が欠かせない――それが第二の壁です。

AI対話すると、モデル文脈を補完してこちらの意図を先回りしてくれるので、「もう口に出さなくても通じる」と錯覚しがちです。

でも内部では巨大な確率辞書を介してトークンを並べているだけで、あなたの生のニューロン活動を読んでいるわけではありません。

未来には、非侵襲の超音波刺激や高密度EEGで脳間リンクを探る研究も続いています ([Nature][3], [NCCIH][4])。

それでも当面は、低帯域のBCI+言語モデルという「拡張音声」が主流でしょう。

直接“念”が届く世界へは、まだ数段の技術と共有プロトコルが要ります

から――今はまだ、静かに言葉を紡ぐしかないのです。

[1]: ttps://www.businessinsider.com/als-neuralink-patient-edits-video-brain-ai-voice-elon-musk-2025-5?utm_source=chatgpt.com "The first nonverbal patient to receiveElon Musk's Neuralink shares a video he edited and narrated usinghisbrainchip"

[2]: ttps://www.reuters.com/technology/neuralink-implants-brain-chip-first-human-musk-says-2024-01-29/?utm_source=chatgpt.com "Elon Musk's Neuralink implantsbrainchip in firsthuman |Reuters"

[3]: ttps://www.nature.com/articles/s41467-024-48576-8?utm_source=chatgpt.com "Transcranial focused ultrasound to V5 enhanceshuman visual ..."

[4]: ttps://www.nccih.nih.gov/research/research-results/transcranial-focused-ultrasound-improves-the-performance-of-a-noninvasive-brain-computer-interface?utm_source=chatgpt.com "Transcranial Focused Ultrasound Improves the Performance of a ..."

Permalink |記事への反応(0) | 20:18

このエントリーをはてなブックマークに追加ツイートシェア

次の25件>
ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp